• [^] # Re: c'est simple...

    Posté par . En réponse au message couper colonne dans 4 variables. Évalué à 4.

    c'est difficile de répondre au besoin sans savoir le besoin, typiquement j'ai cru comprendre via ton commentaire que tu souhaiterais lancer les commandes en parallèle,

    donc si j'ai bien suivi tu as 4 machine sur lesquels envoyer les commandes avec 1 paramètre par ligne, et il faut découper le fichier de façon a exécuter les commandes sur les machines

    là dessus un solution basique consisterai a couper le ficher en 4
    typiquement

    split -l $(( $( wc -l ) / 4 + 1 )) fichier/a.tex

    et lancer tes boule en non bloquant

    while read a 
    do
     commande $a node1
    done < resultatDuSplit1 &
    while read a 
    do
     commande $a node2
    done < resultatDuSplit2 &
    ...

    Par contre si tes commandes ont un temps de traitement différent, tu peux souhaiter vouloir équilibrer le tout pour pas que le node1 prenne 15 heure alors que le node3 en utilise que 2. Là ça demande un peu plus technique et si c'est faisable à la main en shell, ça risque d'être marrant à maintenir pour le suivant

    par contre tu as un outils gnu pour ça : parallel

    par exemple :

    cat fichier/a.tex | parallel --sshlogin node1,node2,node3,node4 commande {}

    si tu n'as pas parallel, il existe aussi map

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent