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 :

[VS2010] profile guided optimizations are not available with OpenMP


Sujet :

Visual C++

  1. #1
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut [VS2010] profile guided optimizations are not available with OpenMP
    Bonjour,

    je viens de voir �a: http://msdn.microsoft.com/en-us/library/7k7e9y2d.aspx

    Je trouve �a ahurissant: tout d�veloppeur c++ qui cherche � optimiser correctement son code utilisera openmp. Or voil�: j�apprends que le profiler de visual c++ n'est pas compatible avec openmp. Il y a quelque chose qui m'�chappe...

    Quelqu'un a plus d'infos sur le sujet?

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    qui cherche � optimiser correctement son code utilisera openmp
    NON
    OpenMP, c'est pour le parall�lisme, et on ne peut pas parall�liser tout et n'importe quoi.

    Je ne parall�liserais que les parties critiques du code que je prendrais soin de mettre dans un module d�di�, histoire d'utiliser des profiler sp�cialement design� pour le parall�lisme.

    Et le reste du code avec un profiler plus conventionnel.

    Donc, cela ne me choque pas que l'impl�mentation d'un profiler soit tr�s sensible options de compilation.

    Je pr�f�re un profiler qui fait correctement son boulot quitte � avoir quelques contraintes, qu'un profiler qui marche partout mais qui donne que des valeurs approximatives.

  3. #3
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut
    Citation Envoy� par bacelar Voir le message
    NON
    OpenMP, c'est pour le parall�lisme, et on ne peut pas parall�liser tout et n'importe quoi.
    Bien s�r, mais g�n�ralement, quand tu en arrive � devoir profiler ton code s�rieusement, c'est que tu es d�j� arriv� � des optimisations du type parral�lisation. Bien s�r pas 100% des fois, mais quand-m�me fort souvent.

    Citation Envoy� par bacelar Voir le message
    Je ne parall�liserais que les parties critiques du code que je prendrais soin de mettre dans un module d�di�, histoire d'utiliser des profiler sp�cialement design� pour le parall�lisme.
    Enti�rement d'accord avec toi, c'est la raison pour laquelle je trouve ahurissant que le profiler de microsoft ne le fasse pas. En fait, c'est plus fourbe que cela. Par exemple, le profiler int�gr� � visual C# g�re parfaitement le parral�lisme. Visual C++ 2010 g�re �galemen le parral�lisme de sa propre lib (Parallel pattern Library). Le fait de ne pas supporter openmp est, il me semble, un choix politique.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Bien s�r, mais g�n�ralement, quand tu en arrive � devoir profiler ton code s�rieusement, c'est que tu es d�j� arriv� � des optimisations du type parral�lisation. Bien s�r pas 100% des fois, mais quand-m�me fort souvent.
    Moi, l'optimisation par parall�lisme, c'est le d�but du processus d'optimisation.
    C'est du "quick win".
    On parall�lise rapidement un code pourri (mais pas trop).

    R�sultat, gain spectaculaire en performance en tr�s peu de temps.
    Et apr�s, pour le code pourri, bin comme le client est tr�s content des perfs, il s'en fout.

    Et nous, on va facturer un nouveau pigeon pour une prestation d'optimisation et encore passer pour un dieu (ou plus souvent, pour un alien asocial ).

    Si je ne me trompe pas, c'est M$ qui pousse OpenMP, donc si c'est un choix politique, ce n'est pas tr�s coh�rent.

    Etant donn� que le code natif est beaucoup plus opaque que le code JIT� via .NET, je pense que la complexit� du profiler du code natif est bien sup�rieur.

    Et franchement, vu la complexit� de ces trucs, les d�veloppeurs des profilers, c'est eux les vrais dieux/aliens.

  5. #5
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut
    Mhhh. Je croyais que c'�tait put�t Intel qui poussait openMP. Mais je n'ai aucune source fiable, donc je ne sais pas.

    Mais sinon tu carricatures un peu. Souvent la parall�lisation est d�s le d�but dans les specs et le code qui en d�coule est con�u pour, d�s le d�but �galement. Bon, c'est aussi une autre carricature, je sais bien qu'en v�rit�, c'est pas souvent le cas.

    Mais je sais pas, je trouvais que microsoft avait pris le bon chemin ces derni�res ann�es. Son compilo c++ qui respecte de plus en plus le standard, le langage c# qui (et ce fut une surprise pour moi quand je m'y suis mis s�rieusement) est tr�s bien pens� et assez propre, etc. Et l� je suis un peu d��u

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Mais sinon tu carricatures un peu. Souvent la parall�lisation est d�s le d�but dans les specs et le code qui en d�coule est con�u pour, d�s le d�but �galement. Bon, c'est aussi une autre carricature, je sais bien qu'en v�rit�, c'est pas souvent le cas.
    Franchement, je travail plus avec des clients de ma caricature que de la tienne.

    J'ai m�me eu droit, quand j'ai "parall�lis�" en 1 jour, une application .NET qui �tait d�j� "impossible � rendre plus optimale" et qui chargeait au taquet une machine bi-pro � 50% de CPU, et donc passant � 100% apr�s "optimisation" � :
    "Faites gaffe, vous allez casser la machine" VERIDIQUE.

  7. #7
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Bonjour.

    En fouillant deux secondes je suis tomb� sur cette page :

    http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx

    The OpenMP C and C++ application program interface lets you write applications that effectively use multiple processors. Visual C++ supports the OpenMP 2.0 standard.
    Visual Studio a ses faiblesses, je pense qu'il y a une raison technique au probl�me d'optimisation. Il faut juste esp�rer que les d�veloppeurs en charge am�liorent la chose.

    Mais intuitivement, je dirai qu'optimiser quelque chose de d�j� optimis� c'est �trange.

  8. #8
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Mais intuitivement, je dirai qu'optimiser quelque chose de d�j� optimis� c'est �trange.
    Bin non, l'optimisation est une t�che sans fin, on peut toujours optimiser un code, toujours.
    C'est juste que le gain � tendance � diminuer et que le p�rim�tre o� ces optimisations sont efficaces devient de plus en plus r�duit et que le domaine o� c'est contre productif devient �norme.

    Non, un code n'est jamais optimis� � fond.
    Une simple innovation technique peut tout remettre en cause.

    Mais soutenons les
    d�veloppeurs en charge am�liorent la chose.


    m�me si c'est des aliens asocials.

  9. #9
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Re.

    Citation Envoy� par bacelar Voir le message
    Bin non, l'optimisation est une t�che sans fin, on peut toujours optimiser un code, toujours.
    Je ne sais dans quel contexte tu dis cela, mais j'aurais plut�t tendance � dire qu'� un moment on atteint les limites de l'optimisation. La meilleure optimisation �tant celle "manuelle" et voire, avec preuve scientifique.

    Je pense donc qu'un logiciel comme Visual Studio avec des options de compilation d'optimisation, ne prends pas le risque d'optimiser une librairie optimis�e, elle aussi logiciellement.

    Citation Envoy� par bacelar Voir le message
    Une simple innovation technique peut tout remettre en cause.
    Une innovation mat�rielle ou un algo inconnu ?

    Pour une innovation mat�rielle, effectivement il faut refaire l'optimisation. Pour l'algo inconnu, on attend les nouveaux Einstein.


    Citation Envoy� par bacelar Voir le message
    Non, un code n'est jamais optimis� � fond.
    Pour r�sumer, un code de 10 lignes peut-�tre optimis� � fond (et par rapport � une architecture mat�rielle), et un code d'1 million de lignes, effectivement c'est impossible.

    Je fais la diff�rence entre optimiser des bouts de code et optimiser une architecture logicielle. Mon raisonnement sur le message pr�c�dent portait sur l'optimisation de bouts de code, pas sur une architecture complexe.

    Apr�s si ton raisonnement c'est de dire que les programmes que l'on d�veloppe, on ne prend jamais le temps de les optimiser � fond, et que donc il y a toujours des optimisations � faire, je suis bien d'accord.

  10. #10
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    avec preuve scientifique
    G�del est mon ami : http://fr.wikipedia.org/wiki/Th%C3%A..._de_G%C3%B6del
    Il est impossible de prouver qu'un algorithme est optimal, alors encore moins une impl�mentation, seule la solution l'est.

    Quand on optimise, il n'y a pas de limite, et donc modifier une architecture est toujours dans l'ordre du possible.
    Et c'est souvent un "quick win".

  11. #11
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Ok.

    C'est bien pour cela que je me suis permis de faire la diff�rence entre une optimisation de quelques lignes de code et une architecture logicielle.

    Je comprends mieux le contexte de ton raisonnement.

Discussions similaires

  1. [Apache CloudStack] templates and Iso are not available when adding an instance
    Par cloud.fatma dans le forum Cr�ation de Clouds
    R�ponses: 1
    Dernier message: 04/09/2014, 12h07
  2. COM1 is not available. No ports are available
    Par aiantreize dans le forum MATLAB
    R�ponses: 3
    Dernier message: 09/03/2007, 15h50
  3. [Optim Code]equals and hashCode are not paired
    Par anitshka dans le forum D�buter avec Java
    R�ponses: 3
    Dernier message: 15/09/2006, 23h25
  4. [MSDE] Not associated with a trusted connection...
    Par tiboleo dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 02/06/2004, 15h08
  5. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres �diteurs
    R�ponses: 6
    Dernier message: 17/02/2003, 06h48

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