avatar de vampire7

vampire7

INpactien depuis le vendredi 19 janvier 2007

793 commentaires

16
avril
2015

SpaceX : décollage avec succès de la fusée Falcon 9, sa récupération échoue de peu

sur notre barge autonome nommée « Just Read the Instructions »

Ils n'ont pas osé l'appeler :rtfm: ?
14
avril
2015

[MàJ] Falcon 9 de SpaceX : pas de lancement ce soir en raison de la météo

Arg... Le stream a foiré à -17 secondes, pour reprendre environ 20 secondes après à T+1:30... :mad:
Toute la phase de décollage disparue.
14
avril
2015
14
avril
2015

La programmation informatique pourrait faire son entrée dans le programme de CE1

Allez les enfants, aujourd'hui on va apprendre quicksort.
Ensuite, on verra ce qu'est un réseau de Feistel.
Et puis demain, on apprendra la transformation de Fourier.

La semaine prochaine, on apprendra à poser une multiplication.
13
avril
2015

[MàJ] Falcon 9 de SpaceX : pas de lancement ce soir en raison de la météo

Et voilà, y'a des nuages, compte à rebours reporté à demain.
10
avril
2015

GCC 5.0 prochainement disponible avec de nombreuses améliorations

Oui enfin, quand on parle de code qui peut accéder à une même adresse mémoire, ça reste du code concurrent, même si le code concurrent ça inclut aussi l'accès aux ressources systèmes. C'est pas moi qui ait choisi le nom. Et comme le code multi-thread n'est pas nécessairement concurrent, j'éjecte ce terme, parce que s'il n'y a pas d'accès concurrent, le problème est facile.

Alors il va falloir que tu corriges l'article de Wikipedia. Je pense que si tu supprimes discrètement la ligne sur la concurrence disjointe, ça devrait mieux coller à tes idées. :yes:

Et c'est généralement à partir de là que j'arrête de répondre. Les grands penseurs en question, ils se sont cassés le cul à transformer d'énormes passages de documentation (la norme) complètement imprécise en formalisation, en la gardant compréhensible par un humain (c'est d'ailleurs comme ça qu'ils ont trouvé pas mal de bourdes dedans). L'idée de "j'en ai rien à carrer c'est juste des scientifiques qui se font mousser, pas besoin de les écouter", quand elle tombe, j'abandonne le dialogue.

Reste à savoir en quoi connaitre ces noms, ou même lire leurs articles, permet d'optimiser ou de débuguer un programme.
Moi, je me "casse le cul" comme tu dis à optimiser à mort certains de mes programmes, c'est pas pour qu'une nouvelle norme vienne tout foutre en l'air.

Sur ce, je vais donc te laisser avec tes dieux de la programmation. N'étant pas croyant, la communication risquerait effectivement d'être difficile.
10
avril
2015

GCC 5.0 prochainement disponible avec de nombreuses améliorations

Qui a dit j'avais "vaguement" lue cette info ?

C'est toi qui suggère que je ne parle pas par expérience. Je suis l'auteur d'une application de chiffrement de fichier par volume et à ma connaissance, seul DiskCryptor est plus rapide, grâce au fait que tous ses algos sont en ASM pur. En pur C, sur tout ce que j'ai essayé, j'ai le record absolu de performance. Mon implémentation en C d'AES est même plus rapide que celle en ASM de TrueCrypt...
Et sur ce genre d'appli, pas question d'avoir une fiabilité approximative, parce qu'il est question de la chose la plus précieuse pour les utilisateurs : leurs données.

Alors oui, les compilateurs ont des bugs, mais ça reste des bugs, c'est-à-dire des choses qui ne sont pas censées survenir. Pour ma part, je n'ai eu qu'un seul vrai bug lié aux optimisations de GCC. En revanche, j'ai eu à de nombreuses reprises des trucs délirants à propos des headers.

Quoi qu'il en soit, pour moi, GCC 5.0, ce sera comme les autres : je compile, je compare, et s'il n'y a pas moyen d'avoir un code aussi compact et rapide qu'avec la version 4.7, ce sera direct à la poubelle, C11 ou pas.

Au fait, tu devrais arrêter de parler de "code concurrent" : la programmation concurrente, ça peut être aussi l'accès à une ressource système partagée à travers différents processus. Il n'est évidemment pas question de ça ici. L'accès aux ressources du système implique des appels à l'API du système, et ces appels de fonction ne sont jamais supprimés, jamais, même en -O3.
Mis à part les bugs, les optimisations de compilateur ne peuvent affecter que la programmation multi-threads (et certains aspects de sécurité comme les buffers non effacés parce qu'ils ne sont plus accédés par la suite).

Moi, le problème auquel je dois le plus faire face, c'est l'imprécision, voire les erreurs, de la documentation de Microsoft, et parfois même celle de GCC. Ça, c'est une source quasi-quotidienne de problèmes et de bugs. Tiens, l'exemple du jour : FSCTL_LOCK_VOLUME.
"The system flushes all cached data to the volume before locking it. For example, any data held in a lazy-write cache is written to the volume."
Cool, à condition de savoir que sur les systèmes antérieurs à Windows XP, ce n'est pas le cas. Et en cas d'échec du lock, les buffers sont quand même vidés ou pas ? Ben on sait pas.
Malgré ça, je préfère quand même lire de la doc plutôt que les réflexions des grands penseurs de la programmation.
08
avril
2015

GCC 5.0 prochainement disponible avec de nombreuses améliorations

Non, ça ne suffit pas. Loin de là surtout si tu veux des performances (et sur de la concurrences très bas niveau, tu veux de la performance). Voir l'article récent de Vafeiadis et al. sur les optimisations de compilateurs.

Je ne parle pas d'une info que j'aurais vaguement lue quelque part, je parle de ce que je vois et de ce que je fais, avec un temps fou passé à regarder le code ASM produit par le compilo.
Malgré ça et un projet faisant des calculs sur un nombre arbitraire de threads, je tombe sur un vrai bug du compilo à peine une ou deux fois par an.
Je maintiens donc, du moins pour la version 4.7 de GCC, que savoir à quel moment les variables sont écrites en mémoire est en général suffisant pour obtenir un code parfaitement stable.

Par contre, pour parler de bizarreries et de performances, j'aurais plutôt envie d'évoquer l'option -O1 qui produit parfois un code plus rapide que -O3, surtout en 32 bits... (toujours avec GCC 4.7)
Franchement, je me fous complètement des méthodes d'optimisation employées ou de la norme du C. Pour moi c'est juste de la littérature. Tout ce qui m'intéresse, c'est le code produit et la vitesse à laquelle ça tourne. Et malgré tout, je veux aussi un code un minimum lisible (au moins par moi :transpi:), et c'est bien la seule raison pour laquelle je ne me mets pas à l'assembleur (bien que j'en ai déjà fait sur plusieurs machines il y a une vingtaine d'années).
08
avril
2015

Truecrypt n'a finalement aucune porte dérobée ni faille majeure

Ce n'est pas clair uniquement pour ceux, hélas nombreux, qui confondent "libre" et "open-source".

D'ailleurs, pour moi, un truc sous GPL n'est pas libre puisqu'on est forcé de tout garder open-source. La vraie liberté, c'est aussi celle de pouvoir s'enfermer soi-même (:transpi:).