IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Passer en multi coeurs


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Par d�faut Passer en multi coeurs
    Bonjour,

    Comment passer un programme MFC en multi coeurs ?

    Merci
    cjacquel

  2. #2
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    D�cembre 2015
    Messages
    1 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 1 599
    Par d�faut
    Bonjour,

    Les MFC donc vraisemblablement sous Windows; Windows est compatible multic�urs depuis quelques ann�es d�j�, et les applications utilisant les MFC fonctionnent, donc les MFC sont utilisables dans un environnement multic�urs sans aucune intervention.

    Le multic�urs permet essentiellement un multi-threading plus performant qu'un monoc�ur.
    Maintenant est-ce que les MFC utilisent optimalement le multi-theading? L� �videmment non.
    Les MFC s'appuient sur
    • Win32 qui est compatible multi-threading, mais aide peu (par exemple, les objets graphiques sont normalement r�-entrant)
    • Le langage C++ qui est compatible multi-threading, mais n'est pas pas un langage int�grant implicitement le parall�lisme. Il faut utiliser des threads ou des outils sp�ciaux (OpenMP, etc...)
    • La biblioth�que STL du C++ qui a des versions compatibles multi-threading et des objets pour le g�rer (std::thread, std::async, ExecutionPolicy, ...)

    Il faut commencer par v�rifier que la biblioth�que est bien multi-thread (depuis r�cemment toutes le sont sous Windaube), ensuite on peut effectuer des traitements dans des threads, le syst�me ex�cutera ces threads dans des c�urs diff�rents. Les MFC devraient fonctionner, les probl�mes de r�-entrance et de protection de ressources sont � suivre de la m�me mani�re que pour tout objet du langage.

  3. #3
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Le probl�me des MFC, c'est que c'est une surcouche de la biblioth�que winapi (ou Win32) ... biblioth�que des ann�es 90-95 et que Microsoft tente de remplacer depuis plus de 10 ans.

    Le probl�me c'est qu'elle(s) est (sont) tr�s bas niveau et qu'il faut:
    • tout faire � la main: gestion des threads, gestion du r�seau, gestion des notifications applications, ...
    • d�pendre de composants plus ou moins bien cod�s lorsqu'ils existent: parseur JSON ou XML, int�gration d'une vue web HTML 5, ...


    Sans parler de la prise de tronche pour bien g�rer:
    • l'�cran: r�duire/ supprimer les scintillements, g�rer une transparence partielle, virer ces bitmaps, ... 90-95 c'�tait l'�poque des cartes graphiques 2D - avec une palette de couleurs
    • les entr�es claviers: les �v�nements keyup, keypress et keyrelease qui se marchent de temps en temps sur les pieds et que Windows aussi g�re certaines touches


    Et enfin, j'ai vu passer dans la bible MFC (de Charles Petzold) que la biblioth�que MFC est une biblioth�que objet et certaines m�thodes non document�es �taient de temps en temps n�cessaire pour bien g�rer la m�moire ( )

    Et pour finir, attends-toi de plus en plus �
    • utiliser les nouvelles API de Windows: gestion des droits, gestion des dossiers sp�cifiques, ...
    • subir/ adopter la nouvelle politique de Microsoft depuis Windows 8: la fonction getversion d�pr�ci�e, ton application ne fonctionne plus sous Windows XP, ...


    Et notamment , les condition variables pour la gestion des threads. (<- lien MSDN)

Discussions similaires

  1. threadpool multi-coeurs, une utopie ?
    Par gorgonite dans le forum Framework .NET
    R�ponses: 11
    Dernier message: 29/01/2010, 09h49
  2. R�ponses: 12
    Dernier message: 06/01/2009, 18h43
  3. programmation multi-coeur ?
    Par sunmat dans le forum Langages de programmation
    R�ponses: 2
    Dernier message: 31/10/2008, 13h20
  4. R�ponses: 5
    Dernier message: 13/10/2008, 01h23
  5. Multi coeur et PBOs
    Par NiamorH dans le forum OpenGL
    R�ponses: 11
    Dernier message: 23/04/2007, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo