|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
Compilatore Pvm
Salve ragazzi mi servirebe un compilatore per windows che mi faccia girare programmi in Pvm (parallel virtual machine)
Grazie ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma PVM non è un libreria ? Quale linguaggio vorresti usare ?
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi fai un esempio di questo linguaggio ?
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
Il seguente programma è un master che inizializza un vettore di 100 elementi lo invia ad uno slave, precedentemente creato. Prima di inviare i dati inizializza il buffer per l'invio ed impacchetta i dati. Infine, riceve lo stesso vettore dallo slave e spacchetta i dati.
Tale esercizio serve per il calcolare il tempo di interazione Tint e Tupk. Il tutto è eseguito n volte per effettuare una buona stima di tali tempi. struct timeval {long tv_sec; // seconds long tv_usec; // microseconds }; struct timezone {int tz_minuteswest; // minutes W of Greenwich int tz_dsttime; // type of dst correction }; *****************************************************************/ #include <stdio.h> #include "pvm3.h" #define encoding PvmDataDefault #define slave "/home/studenti/ram/s1" #define msgtag_send 1 #define msgtag_rcv 2 #define stride 1 int main( ){ struct timeval ta,tb; int tid,n,i,j,k,mytid; int v[100],risposta[100]; int n_slave=0; long Tint=0; long Tupk=0; for(i=0;i<100;i++) v[i]=1; //inizializzazione del vettore mytid = pvm_mytid(); printf("Salve sono il master, il mio identificativo e' %d.\n",mytid); printf("Quante prove si vogliono eseguire? \n"); scanf("\n%d",&n); for(k=0;k<n;k++){ printf("Attendere----ciclo %d.\n\n",k+1); n_slave=pvm_spawn(slave,(char**)0,0,"",1,&tid); //crea lo slave //inizio della misura del tempo impiegato l'interazione gettimeofday(&ta,(struct timezone *)0); pvm_initsend(encoding); pvm_pkint(&v[0],100,stride); if(n_slave==1) { pvm_send(tid,msgtag_send); pvm_recv(-1,msgtag_rcv); pvm_upkint(&risposta[0],100,stride); gettimeofday(&tb,(struct timezone*)0); Tint+=((tb.tv_sec-ta.tv_sec)*1000000+(tb.tv_usec - ta.tv_usec)); //fine del calcolo del tempo di interazione } else{ printf("ERRORE nella creazione degli slave nel ciclo %d.\n",k+1); pvm_exit( ); exit( );} } Tint=Tint/n; printf("Dato un vettore di 100 elementi, su %d prove i tempi stimati sono:\n\n",n); printf("Tint=%ldus.\n\n",Tint); pvm_exit(); exit(); }//fine m1.c /*****************************************************************Il seguente programma è uno slave che riceve dal master un vettore di 100 elementi, spacchetta i dati, li rimpacchetta e lo invia al master. *****************************************************************/ #include "pvm3.h" #include <stdio.h> #define msgtag_send 2 #define msgtag_rcv 1 #define stride 1 #define encoding PvmDataDefault main( ){ int i,mytid,mtid; int v[100]; mytid=pvm_mytid( ); mtid=pvm_parent( ); pvm_recv(mtid,msgtag_rcv); //riceve i dati pvm_upkint(&v[0],100,stride); //spacchetta i dati pvm_initsend(encoding); //inizializza il buffer pvm_pkint(&v[0],100,stride); //impacchetta i dati pvm_send(mtid,msgtag_send); //invia i dati pvm_exit( ); exit( ); }//fine s1.c |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
è scritto in linguaggio C usando la libreria pvm
__________________
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prima devi cercare delle librerie PVM per C compatibili con uno qualsiasi dei compilatori per Windows e dopo ti procuri il compilatore a seconda del formato delal libreria...
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
ciao scusami se ti sto disturbando ma dove le procuro e poi che devo fare io devo vedere se un esercizio gira e gli errori che mi da , tutto qua
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La versione per Windows della tua libreria è qui:
http://www.netlib.org/pvm3/win32/ Il compilatore usato per generare i file .lib è quello Microsoft, quindi ti devi scaricare Visual C++ Express e il Platform SDK dal sito Microsoft. Ultima modifica di cionci : 11-03-2008 alle 12:35. |
![]() |
![]() |
![]() |
#12 | |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
Quote:
|
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#14 | |
Member
Iscritto dal: Apr 2005
Messaggi: 107
|
Quote:
|
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Per ilr esto devi fare delle prove, non è che mi posso mettere a farle io per te, anche perché non ho Windows. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:15.