Forum général.cherche-logiciel Calcul partage sur un réseau Linux (et Windows)

Posté par  (site web personnel) .
Étiquettes : aucune
0
18
jan.
2006
Bonjour,

Je recherche un logiciel (ou service d'arrière-plan), permettant d'allouer les ressources de calcul d'un PC aux besoins d'autres utilisateurs.

Exemple : M. X veut faire un gros calcul scientifique sur son PC. En temps normal, ce calcul lui prendrait plusieurs heures. Imaginons que des utilisateurs du réseau ou travaille M.X n'emploient pas (à cet instant) leurs PCs pour faire des calculs (mais de la bureautique par exemple). Y'a t-il des logiciels Linux (existant aussi sous Windows, le parc étant hétérogène) permettant de répartir une partie de la charge de calcul de M.X sur certains PC du réseau... ?

Bien sûr, il faut laisser libre choix aux utilisateurs d'être "clients" (acceptant de faire les calculs des autres) ou "serveurs" (désireux de faire faire un calcul par les autres...)

Est-ce qu'il existe de tels projets ?
  • # grid computing

    Posté par  . Évalué à 5.

    Bonjour,

    Tu veux faire du grid computing.

    Je te préviens tout de suite, le grid computing, des fois ça marche, mais en général ça marche pas. Pourquoi ?

    Parceque tout dépend de la tâche que tu veux accomplir. Toutes les tâches calculatoires ne sont pas facilement parallélisables. Parmis celles qui le sont, peu ont été parallélisées. Parmis celles qui le sont, peu vont être plus rapide.

    Si tu choisis des exemples style LINPACK (le benchmark du TOP500), alors tu vas pouvoir obtenir réellement des gains de temps (quoique en environnement hétérogène, j'ose à peine imaginer le temps de setup !!!)

    Maintenant dans la vraie vie, les calculs dits à "grain fin" c'est à dire dont le ratio calcul/communication est faible vont être extrèmement pénalisés par des communications style gigabit (je ne parle même pas de 100Mbits ou en dessous). Ton "workload" (je trouve pas de mot français) sera dominé par les synchro réseau.


    Maintenant si tu veux faire de "l'embarassingly parallel" comme seti@home ou les bidules de découverte de molécules qui sont des calculs à très gros grain (les communications sont rarissimes et cachées dans des milliards de Flops) c'est plus envisageable.

    google: grid computing, mpich, heterogenous computing....


    • [^] # Re: grid computing

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      J'abonde dans ce sens: le temps nécessaire pour la mise en place de telle solution n'est pas négligeable et il faut avant s'assurer que le jeu en vaut la chandelle. La première question a poser c'est de savoir si tu as besoin d'une shared memory.

      Si c'est le cas tu peux regarder parmis les solutions utilisée sur les clusters Sun Grid Engine, Torque/Maui par exemple. Avec une implémentation de mpi, un réseau gigabit, et des applis optimisée recompilées pour chaque plateforme, ca peut encore aller _dans de rares cas_, mais en dessous du gigabit, il vaut mieux oulbier.

      Si ce n'est pas le cas, tu peux regarder du coté des solutions dédiées grid computing (plus robuste dans le cas d'un réseau bancal, meilleur scaling car pas d'interconnect): Condor, Boinc. Je ne parle même pas de globus, que tout le monde enscence mais étrangement, je ne connais personne qui l'ai mis en production. Trop lourd, sans doute.

      Note que de son coté, Apple propose xgrid, une espèce de condor en moins abouti, qui semble tout à fait répondre à tes attentes, sauf qu'il ne tourne ni sous linux ni sous windows.
      • [^] # Re: grid computing

        Posté par  (site web personnel) . Évalué à 3.

        Merci pour ces commentaires.

        En effet, après quelques recherches, il s'avère qu'il n'existe pas vraiment de solutions :) En effet :
        - notre réseau est tout pourri (des goulets en 10M parfois...)
        - le parc de machines très hétérogène
        - les processus à distribuer sont souvent des mono-processus (exemple typique : calculs avec matlab), donc impossible à paralléliser.

        J'ai aussi trouvé la solution Mosix (http://www.mosix.org/ et http://openmosix.sourceforge.net/), qui est une extension du Kernel permettant de forker des processus sur des machines inactives du réseau... mais là encore, il faut avoir au moins deux processus en parallèle, sinon ça ne sert à rien...

        tant pis, on ira prendre des cafés en attendant que ça calcule :)
  • # desktop grid ?

    Posté par  . Évalué à 4.

    Salut,
    à mon avis ce que tu veux faire s'appelle du desktop grid.
    C'est à dire répartir un ensemble de tâche sur plusieurs machines desktop.
    A mon boulot, nous avions comparé (en mars 2004) Globus [0] et Xtremweb [1] et l'installation de Globus était un peu lourde et assez longue.
    Par contre Xtremweb est assez simple à installer.
    Dans notre cas nous étions intéresser d'utiliser une grille afin de faire un traitement sur un ensemble de fichier (ce qui ne necessite pas de modifications des programmes).
    Du fait de la lourdeur de l'infrastructure nécessaire, je ne pense pas que Globus se justifie pour un petit ensemble de machine (sauf si biensur tu veux acquérir des compétences sur le standard du grid computing).

    Pour info, nous utilisions des machines GNU/Linux et Mac OS X, donc je ne sais pas comment tout cela se comporte sous Windows.

    [0] http://www.globus.org/toolkit/
    [1] http://xtremweb.net
  • # cela dépend des taches

    Posté par  (site web personnel) . Évalué à 3.

    En fait, cela dépend de ce que tu veux faire.

    Genre dist-cc répartit très bien la compilation.

    Une url qui résume plein de trucs :
    http://www.gdargaud.net/Hack/ClusterNotes.html

    Je ne retrouve pas un outils libre dérivé de travaux de la nasa qui permetait de scripter pour distribuer des jobs. C'est interrescant dans le cas ou tu as encore des machines lentes qui lancent leur jobs lourd sur le serveur de calcul le moins chargé.

    "La première sécurité est la liberté"

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.