Instal·lació d’un computador paral·lel amb MPI

Enguany hem muntat a l’Escola un computador paral·lel a partir d’ordinadors vells i antiquats.

Aquests són els passos que hem fet:

  • Instal·lació de la distribució Linux Debian en cadascun d’ells.
  • Clavar una ip estàtica en cadascuna de les màquines i assignar-els-hi un nom en cadascuna (en el nostre cas, el vàrem batejar com a “supercomputador Hulk” – hulk1, hulk2, hulk3, and so on.
  • Instal·lació del servei de SSH i configurar-los tots per tal que es pugui accedir a un compte “sense contrasenyes” sempre utilitzant el mateix usuari.
    • Assegurar-se que, des d’un ordinador, es pot executar quelcom similar: ssh 192.168.55.20 hostname
  • Instal·lació de MPich en totes les màquines.
  • Configuració de tots els noms i totes les ip’s en el fitxer de /etc/hosts.
  • Escriure a la mateixa HOME un fitxer machinefile amb la ip de totes les màquines que executaran programari.
  • Executar en el supercomputador la comanda mpiexec -l machinefile -n 5 nomprograma.

Fet !

Provem ara un exemple concret:

  • Descarreguem un programa preparat per MPI que calcula el total de nombres primers fins a un número determinat.
  • El compilem en cadascuna de les màquines: g++ prime_mpi.cpp -lmpi -o prime_mpi
  • Observem que, si executa el programa prime_mpi en una màquina local, triga 31.31s per arribar al número 131072.
  • Fent el mateix però emprant cinc màquines treballant en paral·lel fent servir el supercomputador (mpiexec -f machinefile -n 5 ./prime_mpi), triga: 3.97s. Gairebé 10 vegades menys!

Gerard

Gerard Farràs i Ballabriga.