vmagnin a écrit 428 commentaires

  • [^] # Re: Performance des compilateurs libres

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 7.

    Forcément, sur un système d'exploitation un exécutable c'est :
    - des instructions en langage machine directement exécutées par le processeur,
    - des appels aux fonctions du noyau,
    - des appels aux fonctions des librairies du système.
    Pour tout ce qui concerne l'utilisation du matériel, il faut bien passer par ces fonctions : afficher, lire/écrire sur le disque dur, réserver de la mémoire, etc. Même pour utiliser le microprocesseur, sur un système actuel il faut bien en passer par le scheduler du système. On n'a plus le droit de monopoliser le CPU comme dans les années 80.

    D'ailleurs, comme le C, le Fortran est un langage normalisé dont la norme parle très très peu du matériel : par exemple, dans la norme Fortran 2008, le mot "byte" apparaît 8 fois en 621 pages (essentiellement pour dans la partie interaction avec le C) et le mot "octet" 3 fois. Sur le long terme (~63 ans pour le Fortran, ~50 pour le C), on ne peut pas s'appuyer sur du matériel qui évolue au fil des décennies, ou sur des concepts liés aux systèmes d'exploitation qui évoluent tout autant. Fortran a tourné avant même que le concept de byte se fixe sur 8 bits…

    Donc actuellement, sur un système Linux, un exécutable Fortran fait appel au noyau Linux et à la libc. Mais avant la naissance du C et d'UNIX, il se débrouillait autrement. Et s'il faut tourner sur de nouveaux systèmes sans libc, ça ne changera pas grand chose pour l'utilisateur.

  • [^] # Re: Ce soir on vous met...

    Posté par  (site web personnel) . En réponse au journal Le FairPhone 3 est désormais supporté par (et même vendu avec) /e/ (ex-eelo). Évalué à 1.

  • [^] # Re: Performance des compilateurs libres

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 3.

    Merci,
    je suis tout à fait d'accord avec toi sur Ifort, même expérience globalement.
    Attendons Flang…

  • [^] # Re: Mes premières lignes de code professionnelles

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 3. Dernière modification le 04 mai 2020 à 12:04.

    J'ai trouvé un exo concernant Python et les cartes perforées !
    http://www.france-ioi.org/algo/task.php?idChapter=232&idTask=907

  • [^] # Re: Mes premières lignes de code professionnelles

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 1.

    C'est sûr !
    Des IF sans ELSE, c'est rude ! Ca sent le GO TO !

  • [^] # Re: Pas que le calcul

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 2.

    Est-ce qu'il y a une notion d'ordre dans l'itération d'un itérateur Python ? Avec une parallélisation, l'ordre ne serait pas forcément respecté au niveau de l'exécution.

  • [^] # Re: Pas que le calcul

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 5.

    Concernant la généricité, Steve Lionel précise qu'il a été question de travailler dessus pour la future norme 202X, mais que ça a été reporté à la norme suivante 202Y faute de consensus :

    https://stevelionel.com/drfortran/2020/04/25/doctor-fortran-in-forward/

  • [^] # Re: Pas que le calcul

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 7.

    C'est intéressant de discuter des chaînes de caractères en Fortran. Personnellement, c'est justement un aspect du langage qui m'a toujours dérangé aux entournures. Probablement parce que les chaînes ont (avaient ?) une longueur fixe, qu'il faut jouer avec Trim(), etc. Ca doit venir de mes années BASIC…

    Mais comme ce n'est pas au cœur de mon usage (en gros les chaînes me servent uniquement à manipuler des noms de fichiers de sortie), j'ai sûrement raté des épisodes, ceux dont tu parles avec Fortran 2003 et 2008. Par exemple, je suis complètement passé à côté de l'Unicode dans Fortran… Je vois aussi que dans Fortran 95, il y avait un module optionnel "Varying length character strings" (ISO/IEC 1539-2 : 2000). Est-ce qu'il a été inclus dans la norme principale ?

    Promis, le jour où je retournerai dans mon bureau (?), je relirai ton article dans GLMF !

    Tiens, je ne savais pas que Cray faisait maintenant partie de HP. Ils n'ont pas fini d'implémenter Fortran 2018 (deffered features), mais je suis incapable de juger de ce que ça représente… Bon, on n'est pas dans la même catégorie, je me contenterai de mon cher gfortran… A noter que dans son blog, Steve Lionel précise qu'un de ses objectifs est de réduire le nombre de nouveautés majeures dans les normes pour laisser le temps aux éditeurs de compilateur d'implémenter les normes (https://stevelionel.com/drfortran/2020/04/25/doctor-fortran-in-forward/). D'ailleurs, il dit bien qu'en 2017 seul le compilateur Cray implémentait intégralement Fortran 2008.

  • [^] # Re: Mes premières lignes de code professionnelles

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 4.

    Ca peut servir à comprendre du vieux code. Mais c'est limite de l'archéologie informatique… Dommage, il y a quand même un avant et un après Fortran 90.

  • [^] # Re: Ça fait plaisir un journal sur Fortran

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 8.

    Bonsoir,

    le site fortran-lang.org est tout frais, il a été mis en ligne très récemment (avril ?).

    Effectivement, j'ai gfortran-10 dans deux machines virtuelles Fedora 32 et Lubuntu 20.04, mais j'attends de mettre à jour mon Ubuntu 19.10 pour faire des tests de vitesse (j'attends le déconfinement pour faire mes mises à jour…)

    Non, je n'ai pas essayé les coarrays. J'ai juste un code de calcul qui utilise du ray tracing, et qui se parallélise très facilement avec OpenMP (quelques lignes de directives bien choisies) pour utiliser tous les coeurs de mes PC. Mais dans le livre "Numerical Computing with Modern Fortran" de R.J. Hanson et T. Hopkins, il y a trois chapitres sur MPI, Coarrays et OpenMP.

    https://books.google.fr/books/about/Numerical_Computing_with_Modern_Fortran.html?id=Oe4mAgAAQBAJ&redir_esc=y

  • [^] # Re: Performance des compilateurs libres

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 6. Dernière modification le 03 mai 2020 à 22:09.

    Attention, dans le benchmack Polyhedron, il y a deux tableaux : le premier sous Windows, le second sous Linux. A noter que le second semble plus favorable pour gfortran (d'ailleurs en version 7.4 sous Linux, et 8.1 sous Windows…).

  • [^] # Re: Performance des compilateurs libres

    Posté par  (site web personnel) . En réponse au journal Des nouvelles de Fortran. Évalué à 10.

    Voici un benchmark récent de divers compilateurs Fortran :
    https://polyhedron.com/?page_id=175
    qui montre que gfortran ne se débrouille globalement pas plus mal que la plupart des compilateurs commerciaux. Maintenant, c'est compliqué les benchmarks : ça dépend des problèmes mathématiques utilisés, des options choisies pour chaque compilateur, des microprocesseurs sur lesquels ont les utilise (sans parler de clusters de machine), etc.

    Personnellement, j'ai longtemps utilisé les ancêtres d'Intel Fortran, en particulier Compaq Visual Fortran, et depuis une douzaine d'années j'utilise principalement gfortran. J'avais acheté Intel Fortran 2015, mais finalement pour les problèmes qui m'intéressent (basés souvent sur la résolution de gros systèmes d'équations différentielles, sur un bon PC), je me suis rendu compte que suivant les problèmes gfortran pouvait être un peu plus rapide qu'Intel ou le contraire, avec des différences en général inférieures à 10 %. Bon, quand on est à 10 % de différence, c'est peu. Même pour un calcul qui dure 10h, c'est vrai qu'on est content de gagner une heure, mais ça n'est pas non plus déterminant pour le choix d'un compilateur. Les compilateurs commerciaux n'implémentent pas forcément plus vite les nouvelles normes Fortran et finalement si on veut bénéficier des nouveautés, au bout d'un an ou deux il faut ressortir le porte-monnaie.

    A noter que dans les benchmarks, il faut aussi se méfier des versions des compilateurs. Dans le cas de gfortran, sur mon Ubuntu j'ai gfortran-4.8, gfortran-5, gfortran-7, gfortran-8 et gfortran-9 ! J'ai un script python qui me permet de tester sur mon problème chaque version avec différentes options ou groupes d'options (-O3, -Ofast, -march=native, -mtune=native…) et je sais d'expérience que la dernière version n'est pas forcément la plus rapide : parfois oui, parfois non. Le numéro de version mineure a aussi son importance : j'ai en ce moment la 7.5, la 8.4 et la 9.2. Comme leur nom l'indique la 7.5 et la 8.4 ont été plus longuement déboguées. Quand une nouvelle version majeure vient de sortir, par exemple x.0 ou x.1, on peut parfois être déçu. Enfin, on est généralement à des différences de l'ordre de 5 %, parfois 10 %.

    En tout cas, j'attends la sortie de Flang (LLVM 11 ?) car il est toujours bon d'avoir plusieurs compilateurs, d'une part pour choisir le plus rapide, d'autre part parce que ça permet d'améliorer la qualité du code (certains compilateurs vont détecter des petits problèmes que d'autres ne verront pas).

  • [^] # Re: Droidcam

    Posté par  (site web personnel) . En réponse au message Utiliser son smartphone comme webcam pour son PC ?. Évalué à 1.

    J'ai réussi à activer le Débogage USB en allant dans le menu "A propos du téléphone > Informations sur le logiciel > Numéro de version" (taper 7 fois pour activer les Options de développement).

    Sur mon PC, adb est installé.

    Pour l'instant DroidCam affiche qu'il est déconnecté.

    Faudrait-il installer SDK Android ? Faire une manip avec adb ?

  • [^] # Re: Droidcam

    Posté par  (site web personnel) . En réponse au message Utiliser son smartphone comme webcam pour son PC ?. Évalué à 1.

    Voici un résumé de ce que j'ai réussi à faire dans Ubuntu 19.10. A noter que pour l'instant, je ne me suis pas soucié du son. Je me suis basé sur :
    https://lord.re/posts/198-mon-setup-pour-streamer-vol1/
    et surtout :
    https://srcco.de/posts/using-obs-studio-with-v4l2-for-google-hangouts-meet.html

    On installe et configure v4l2loopback pour avoir un /dev/video5 :

    $ sudo apt install v4l2loopback-utils v4l2loopback-dkms
    $ sudo modprobe v4l2loopback devices=1 video_nr=5 card_label="OBS Cam" exclusive_caps=1
    $ ls /dev/video5
    

    On installe OBS Studio 0.0.1 :

    $ sudo apt install obs-studio
    

    On build et installe son plugin v4l2sink :

    $ git clone --recursive https://github.com/obsproject/obs-studio.git
    $ git clone https://github.com/CatxFish/obs-v4l2sink.git
    $ cd obs-v4l2sink
    $ mkdir build && cd build
    $ sudo apt install libobs-dev qtbase5-dev
    $ cmake -DLIBOBS_INCLUDE_DIR="../../obs-studio/libobs" -DCMAKE_INSTALL_PREFIX=/usr ..
    $ make -j
    $ sudo make install
    $ sudo cp /usr/lib/obs-plugins/v4l2sink.so /usr/lib/x86_64-linux-gnu/obs-plugins/
    

    On installe DroidCam via Aurora Store, on lance l'application sur le téléphone connecté en Wi-Fi.

    On lance OBS Studio :

    $ obs
    

    On crée une Scène qu'on appelle "Smartphone webcam". Dans Sources, on ajoute une "Source média", et dans ses propriétés on décoche "Fichier local" et on indique l'adresse de DroidCam (par exemple http://192.168.0.106:4747/video) comme entrée. Dans le menu Outils > V4L2 Video Output, on indique le chemin /dev/video5 et on clique sur Auto Start.

    Ca marche ! Le logiciel de capture Webcamoid détecte bien /dev/video5. Ca marche également dans un navigateur avec https://webcamtests.com/ (dans Firefox, autoriser l'utilisation de la webcam). Et dans https://meet.google.com/, on voit l'image dans la fenêtre de paramétrage de la caméra.

    Par contre, quand j'installe Skype :

    $ snap install skype --classic
    

    Dans la fenêtre de configuration de la caméra, Skype voit bien une "OBS cam", mais le rectangle reste désespérément noir…

    A noter également une latence d'environ 0,5 seconde.

  • [^] # Re: Droidcam

    Posté par  (site web personnel) . En réponse au message Utiliser son smartphone comme webcam pour son PC ?. Évalué à 2.

    Merci à tous,

    je viens d'installer DroidCam via Aurora Store. Dans mon navigateur, en me connectant à http://192.168.1.106:4747/ je vois le flux vidéo du smartphone. La version gratuite affiche de la pub (sur l'écran du smartphone) et permet une résolution de 480p (la version pro propose 720p et 1080p). Mon application DataStats montre que le flux sortant du téléphone est 3 à 4 MB/s. Je suis en Wi-Fi.

    Ca marche aussi avec VLC (Ouvrir un flux réseau > http://192.168.1.106:4747/video).

    Par contre, je n'ai pas l'impression d'avoir le son.

    Mais c'est un bon début. C'est intéressant.

  • # extundelete, ext4magic, foremost ?

    Posté par  (site web personnel) . En réponse au message partition perdue, testdisk, superblock non valide. Évalué à 2.

    Bonjour,

    as-tu essayé des programmes comme extundelete, ext4magic, foremost ?

    Je me souviens avoir utilisé avec succès extundelete pour récupérer un gros répertoire effacé (ext4) :
    - http://extundelete.sourceforge.net/
    - https://doc.ubuntu-fr.org/extundelete

    Mais la partition était intacte. Si la partition est abîmée, je ne sais pas si ces utilitaires arrivent à récupérer quelque chose.

    Bon courage

  • [^] # Re: Double substitution en Bash

    Posté par  (site web personnel) . En réponse au journal Courses Assistées par Ordinateur (CAO). Évalué à 2.

    Apparemment, la substitution se fait en une seule passe dans bash…

    En tout cas, ça me donne envie de faire une impression de man bash car je ne me souviens pas avoir vu cette syntaxe de double substitution dans aucun livre, mémento ou magazine…

    Voilà qui donne un résultat convenable pour une impression :

    $ man --troff-device=ps bash > bash.ps
    

    Bon, y'a quand même 81 pages en Glish, of course.

  • [^] # Re: Double substitution en Bash

    Posté par  (site web personnel) . En réponse au journal Courses Assistées par Ordinateur (CAO). Évalué à 2. Dernière modification le 27 avril 2020 à 19:11.

    J'ai trouvé dans man bash :

    ${parameter}

    If the first character of parameter is an exclamation point (!), and parameter is not a nameref, it intro‐
    duces a level of indirection. Bash uses the value formed by expanding the rest of parameter as the new pa‐
    rameter; this is then expanded and that value is used in the rest of the expansion, rather than the expansion
    of the original parameter. This is known as indirect expansion.

  • [^] # Re: Double substitution en Bash

    Posté par  (site web personnel) . En réponse au journal Courses Assistées par Ordinateur (CAO). Évalué à 2.

    Merci bien, je ne connaissais pas cette syntaxe. C'est commité !

    Finalement pourquoi bash n'accepte pas :

    url="${${article}}"
    

    et que signifie ce ! qui n'est pas une négation ?

    Ca affiche apparemment non pas le contenu de la variable, mais son affectation :

    $ article='url_bananes'
    $ !article
    article='url_bananes'
    $
    

    Est-ce que c'est le ! de la commande history ? Ca renvoie la dernière commande de l'historique commençant par cette chaîne ? (c'est ce que ça semble faire)

  • [^] # Re: disque dur plein ?

    Posté par  (site web personnel) . En réponse au message Je n'arrive plus à installer de paquets . Évalué à 2.

    Ca peut être dû à des noms de fichiers ou répertoires comprenant des espaces. Dans ce cas il faut mettre le chemin entre guillemets ou apostrophes :

    $ rm "./mon répertoire/mon fichier avec des espaces.ext"
    
  • [^] # Re: disque dur plein ?

    Posté par  (site web personnel) . En réponse au message Je n'arrive plus à installer de paquets . Évalué à 2.

    NeoX a raison, ta partition utilisateur est probablement pleine si tu n'arrives pas à te connecter. C'est un symptôme classique.

    Donc tu te connectes dans un terminal (CTRL+ALT+F2), puis tu tapes :

    $ find . -size +5M -exec ls -lh {} \;
    

    Ca t'affichera la liste des fichiers de plus de 5M dans ton compte.

    Ensuite, tu en effaces quelques-uns avec des commandes Remove du type :

    $ rm /chemin/chemin/gros_fichier
    

    Tu reviens en mode graphique (CTRL+ALT+F1 sur une Ubuntu), tu pourras alors te connecter dans ta session et poursuivre le ménage. Consulte le post suivant :
    https://linuxfr.org/forums/linux-debutant/posts/probleme-espace-disque

    Tu y trouveras des outils en mode graphique pour faire du ménage.

    Bon courage

  • [^] # Re: Ubuntu ?

    Posté par  (site web personnel) . En réponse au message Je n'arrive plus à installer de paquets . Évalué à 2.

    C'est ça !

  • # Ubuntu ?

    Posté par  (site web personnel) . En réponse au message Je n'arrive plus à installer de paquets . Évalué à 2. Dernière modification le 26 avril 2020 à 19:04.

    Dans le cas d'une distribution Ubuntu, une installation avortée peut nécessiter un :

    $ sudo dpkg --configure -a
    

    Si tu n'arrives pas à te connecter à ta session graphique, essaie de te connecter en mode texte avec un CTRL+Alt+F2 par exemple.

  • [^] # Re: Quelques autres brothers...

    Posté par  (site web personnel) . En réponse au journal Naviguer sans tête dans un coquillage !. Évalué à 1.

    Dans les options de w3m, je vois qu'il y a du choix en terme de dump :

    -dump dump formatted page into stdout
    -dump_head dump response of HEAD request into stdout
    -dump_source dump page source into stdout
    -dump_both dump HEAD and source into stdout
    -dump_extra dump HEAD, source, and extra information into stdout

  • # Quelques autres brothers...

    Posté par  (site web personnel) . En réponse au journal Naviguer sans tête dans un coquillage !. Évalué à 3.

    Dans Synaptic, je trouve aussi :

    Si vous les avez déjà utilisés, quels sont vos avis ?