Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Setup MPI u Visual Studiju

[es] :: C/C++ programiranje :: Setup MPI u Visual Studiju

[ Pregleda: 2280 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

-pixi-
dk

Član broj: 134302
Poruke: 23
195.41.172.*



Profil

icon Setup MPI u Visual Studiju10.10.2007. u 15:50 - pre 201 meseci
Evo ovako: Testiram neki komponent koji vec radi ali ga treba optimirati za vise procesora. Nasao sam i druge varijante ali hocu takodje da isprobam i sa MPI-om. Izabrao sam MPICH implementaciju, jer mi se cinila najpopularnija, ako ko ima iskustva sa drugom pokusao bi i tu. U glavnom je problem u tome sto sve radi kako treba ali ipak ne. Nasao sam sledeci jednostavan primjer da testiram dali stvari rade kako treba:

Code:
#include "stdafx.h"
#undef SEEK_SET
#undef SEEK_END
#undef SEEK_CUR
#include <stdio.h>
#include <mpi.h>

void main (int argc, char *argv[]) {
int err;
err = MPI_Init(&argc, &argv);
printf("Hello world!\n");
err = MPI_Finalize();
}

Na prvi pogled mi je izgledao kao da sve radi kako treba, ali u nastavku teksta u kojem sam nasao primjer bio je naveden i ocekivani output:
Citat:
Hello world!
Hello world!
Hello world!
Hello world!

Kod mene je na veliko razocarenje samo pisalo jednom "Hello World!" znaci problem je u tome sto umjesto na svim procesorima da kod bude posebno izvrsen, kod mene je to slucaj samo na jednom od dva CPU-a (Autor artikla iz kojeg sam uzeo kod imao je znaci 4 CPU-a :), da se ne zbunite). Pomoc zelim znaci u postavljanju kompilera, koji treba da kompajlira kod tako da se izvrsi na oba CPU-a. Za kraj samo da kazem da ovo radim u Visual Studio 2005 ;)

Nadam se da neko ima iskustva i da moze pomoci.
Hvala unaprijed
 
Odgovor na temu

prezakg
student

Član broj: 80909
Poruke: 27
77.46.218.*



Profil

icon Re: Setup MPI u Visual Studiju11.10.2007. u 12:23 - pre 201 meseci
Nisam koristio MPI sa VS 2005 tako da mogu da ti dam samo link za podesavanja samo za VS 6.0

http://www-unix.mcs.anl.gov/mpi/mpich1/mpich-nt/msdevhelp.html

I jos jedna stvar, koristi guiMPIRun i u njemu odaberi koliko procesa zelis da pokrenes.

"Hello world " program da proveris da li radi MPI:

Code:
/*
  "Hello World" Type MPI Test Program
 */
 #include <mpi.h>
 #include <stdio.h>
 #include <string.h>
 
 #define BUFSIZE 128
 #define TAG 0
 
 int main(int argc, char *argv[])
 {
   char idstr[32];
   char buff[BUFSIZE];
   int numprocs;
   int myid;
   int i;
   MPI_Status stat; 
 
   MPI_Init(&argc,&argv); /* all MPI programs start with MPI_Init; all 'N' processes exist thereafter */
   MPI_Comm_size(MPI_COMM_WORLD,&numprocs); /* find out how big the SPMD world is */
   MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* and this processes' rank is */
 
   /* At this point, all the programs are running equivalently, the rank is used to
      distinguish the roles of the programs in the SPMD model, with rank 0 often used
      specially... */
   if(myid == 0)
   {
     printf("%d: We have %d processors\n", myid, numprocs);
     for(i=1;i<numprocs;i++)
     {
       sprintf(buff, "Hello %d! ", i);
       MPI_Send(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD);
     }
     for(i=1;i<numprocs;i++)
     {
       MPI_Recv(buff, BUFSIZE, MPI_CHAR, i, TAG, MPI_COMM_WORLD, &stat);
       printf("%d: %s\n", myid, buff);
     }
   }
   else
   {
     /* receive from rank 0: */
     MPI_Recv(buff, BUFSIZE, MPI_CHAR, 0, TAG, MPI_COMM_WORLD, &stat);
     sprintf(idstr, "Processor %d ", myid);
     strcat(buff, idstr);
     strcat(buff, "reporting for duty\n");
     /* send to rank 0: */
     MPI_Send(buff, BUFSIZE, MPI_CHAR, 0, TAG, MPI_COMM_WORLD);
   }
 
   MPI_Finalize(); /* MPI Programs end with MPI Finalize; this is a weak synchronization point */
   return 0;
 }
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: Setup MPI u Visual Studiju11.10.2007. u 20:35 - pre 201 meseci
ako kod probavas na nekom klasteru, onda bi trebao definisati job preko job definition language-a u kojem definises npr.
-na koliko nodova se kod izvrsava.
-gdje se smjestaju rezultati
-gdje se smjestaju izvjestaji o greskama
- i druge stvari...


Na kojem klasteru radis? Koliko je pouzdan?
Ja sam znao raditi na nekim klasterima koji su lose podeseni, i ne mogu dati nikakakav rezultat...




there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

-pixi-
dk

Član broj: 134302
Poruke: 23
195.41.172.*



Profil

icon Re: Setup MPI u Visual Studiju15.10.2007. u 09:54 - pre 201 meseci
prezakg:
Pokusao sam da pratim tutorial, i ako je interface malo drugaciji, u datom linku i uspio do sedme tacke. Poslije toga nemogu da razjasnim kako da dodam .lib fajlove. Kao prvo pod Properties -> Linker -> Input -> Additional Dependencies sam vec dodao mpi.lib jer ne postoji mpichd.lib, a kao drugo ako pokusam da dodam ws2_32.dll (koji se nalazi u system32) onda ne moze da nadje koji god od ta dva fajla navedem kao prvi. Znaci ako napisem "ws2_32.dll, mpi.lib" ne moze naci ws2_32.dll.
Ovo sam uradio sa projektom u examples folderu i to mi na izgled radi kako treba, sada mi nije jasno kako da dalje u svoj projekat ovo uvedem!? Pomalo me je ovaj artikal zbunio jer ima puno sub projekata. Ja sam mislio da svaki projekat treba da bude poseban solution i da include koristis da importujes include i lib fajlove.

IDE:
Oprosti ako sam bio nejasan ali ne radim na clusteru nego radim na dual-core processoru i kao sto rekoh u prvoj poruci pokusavam da optimiram komponent za dual/quad -core jednog racunara. Sto takodjer znaci da bi zelio da je moguce da komponent sam "sazna" koliko processora moze da podjeli posao.

Hvala na odgovorima
 
Odgovor na temu

prezakg
student

Član broj: 80909
Poruke: 27
77.46.218.*



Profil

icon Re: Setup MPI u Visual Studiju16.10.2007. u 12:28 - pre 201 meseci
Evo malo sam progooglovao za tebe....

Neko je postavio isto pitanje na majkrosoftovom sajtu:

http://forums.microsoft.com/MS...spx?PostID=148297&SiteID=1

na zalost ne mogu to da proverim jer nemam VS 2005, pa ako ti ovo nije od pomoci postavi pitanje kako se podesava linker u VS 2005 na ovom forumu, neko ce valjda da odgovori.......

P.S. mozes i da nadjes neki gotov(podesen) projekat za MPICH za VS 2005 na net-u i da ga prepravis za svoje potrebe(zamenis sadrzaj c/c++ fajlova)
 
Odgovor na temu

-pixi-
dk

Član broj: 134302
Poruke: 23
195.41.172.*



Profil

icon Re: Setup MPI u Visual Studiju18.10.2007. u 11:54 - pre 201 meseci
Hvala na odgovoru pokusacu ovo pa cu se vratiti... jer trenutno nisam u mogucnosti da ovo isprobam.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Setup MPI u Visual Studiju

[ Pregleda: 2280 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.