Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> Digital Video Software >> .

Puoi fornire un esempio di utilizzo della trasmissione MPI in un'applicazione di elaborazione parallela?

Ok, forniamo un esempio di utilizzo della trasmissione MPI in un'applicazione di elaborazione parallela. Sceglierò uno scenario relativamente semplice:distribuire le condizioni iniziali per una simulazione numerica a tutti i processi.

Scenario:

Immagina di gestire una simulazione parallela (ad es. Modellazione della crescita della popolazione). Abbiamo un parametro globale `iniziale_population` che deve essere conosciuto da * ogni * processo nel comunicatore MPI. Solo il processo di root (processo con il grado 0) conosce inizialmente questo valore. Useremo `mpi_bcast` per distribuire` iniziale_population` a tutti i processi.

Esempio di codice (C ++)

`` `C ++

#include

#include

int main (int argc, char ** argv) {

Int Rank, dimensioni;

doppio iniziale_population; // parametro globale

Mpi_init (&argc, &argv);

Mpi_comm_rank (mpi_comm_world, &rank);

Mpi_comm_size (mpi_comm_world, &size);

// Inizializza Initial_Population solo sul processo di root

if (rank ==0) {

iniziale_population =1000.0; // Esempio Valore iniziale

std ::cout <<"processo 0:popolazione iniziale =" < } altro {

iniziale_population =0.0; // Altri processi inizializzano su un valore predefinito (non importa)

}

// trasmette la popolazione iniziale dal processo 0 a tutti i processi.

Mpi_bcast (&iniziali_population, 1, mpi_double, 0, mpi_comm_world);

// Ora, tutti i processi hanno il valore corretto di iniziale_population.

// Esegui calcoli di simulazione utilizzando i dati distribuiti

// Esempio:

doppia crescita_rate =0,05; // tasso di crescita del 5%

Double Final_Population =Inizial_Population * (1.0 + Growth_rate);

std ::cout <<"processo" <

  • No
  •  

    software © www.354353.com