View Full Version : Compilatore Pvm
lelloraf
10-03-2008, 16:32
Salve ragazzi mi servirebe un compilatore per windows che mi faccia girare programmi in Pvm (parallel virtual machine)
Grazie:mc: :muro:
Ma PVM non è un libreria ? Quale linguaggio vorresti usare ?
lelloraf
10-03-2008, 22:38
Ma PVM non è un libreria ? Quale linguaggio vorresti usare ?
Linguaggio PVM no la libreria
Mi fai un esempio di questo linguaggio ?
lelloraf
11-03-2008, 07:54
Mi fai un esempio di questo linguaggio ?
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
è scritto in linguaggio C usando la libreria pvm
è scritto in linguaggio C usando la libreria pvm
Appunto ;)
lelloraf
11-03-2008, 11:53
Appunto ;)
ciao quindi come devo fare devo scaricare un compilatore in c e poi metto le librerie pvm
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...
lelloraf
11-03-2008, 12:22
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...
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
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.
lelloraf
11-03-2008, 17:17
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.
Mi dai anche il sito per scaricare Visual C++ Express e il Platform SDK per windows xp service pack 2 , mentre per quanto riguarda le librerie le devo istallare tutte
http://www.microsoft.com/express/download/
http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
lelloraf
11-03-2008, 17:35
http://www.microsoft.com/express/download/
http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
quindi istallo prima visual c++ poi sdk e poi metto le librerie quali?
quindi istallo prima visual c++ poi sdk e poi metto le librerie quali?
Mi sa che il secondo non serve....la versione nuova di Visual Studio Express installa anche il platform sdk.
Per ilr esto devi fare delle prove, non è che mi posso mettere a farle io per te, anche perché non ho Windows.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.