title: MPICH
text: # MPICH
  
  MPICH è una implementazione libera e portabile di MPI, un protocollo di comunicazione utilizzato nelle applicazioni per sistemi a memoria distribuita per il Calcolo parallelo. MPICH è Software libero ed è disponibile per varie versioni di Unix (incluso Linux e macOS) e Microsoft Windows.
  
  La prima implementazione di MPICH si chiama MPICH1 che implementa lo standard MPI-1.1. Attualmente l'ultima implementazione si chiama MPICH2 la quale implementa lo standard MPI-2.0, ma non supporta ancora la traduzione dei dati da differenti tipi di architetture hardware.
  
  ## Funzionamento
  
  Per poter usare le implementazioni di MPICH-2 è necessario effettuare alcuni passaggi.
  
  Prima di tutto, bisogna creare un file .mpd.conf da piazzare nella home dell'utente e aggiungere una parola segreta.
  
  Dopo questo passaggio, bisogna specificare le macchine che verranno usate in fase di esecuzione. Proprio per questo, le macchine vengono inserite in un apposito file mpd.hosts. All'interno di tale file vengono inseriti gli indirizzi IP oppure gli hostname.
  
  Fatto questo passaggio, non resta che avviare il tutto con:
  
  ## Esempi
  
  È possibile usare MPICH-2 con i linguaggi C, C++ e Fortran. Vediamo di seguito, dei piccoli codici di esempio.
  
  ### Linguaggio C
  
  Per compilare ed eseguire questo programma su 5 nodi, è necessario lanciare questi 2 comandi:
  
  In output si avrà una cosa del genere:
  
  ### Linguaggio Fortran
  
  Per compilare ed eseguire questo programma su 5 nodi, è necessario lanciare questi 2 comandi:
  
  In output si avrà una cosa del genere:
  
  