View Full Version : Problema Programmazione MPI su Windows
ArchangelInHell
19-05-2008, 15:30
Buonasera a tutti.Vi chiedo consiglio su un problema che non riesco a risolvere.Devo fare un esame in cui dovrò fare dei semplici programmi in C o C++ e con le librerie MPI.Questi programmini li dovrò poi provare sulle macchine parallele a cui il mio prof ci fa collegare.Il mio problema principale è che non sono un asso della programmazione,ho fatto solo qualche programma in C e C++ per altri esami,niente di più.Principalmente però quello che non riesco a capire è come devo fare a compilare..cioè..so che per compilare devo digitare mpicc se voglio compilare un programma scritto in C..ma come faccio se sul mio portatile non ho le librerie MPI?Inoltre uso prevalentemente Windows XP,per ora con Ubuntu sono alle prime armi perciò non lo considero per ora.Ho visto su un sito su MPI che probabilmente dovrei installare le librerie MPI sulla mia macchina..ma come?Io per ora ho sempre usato per scrivere i programmi e per compilare Dev-C++.C'è qualcuno che mi può spiegare come fare?Vi ringrazio già da adesso del tempo dedicatomi..spero in risposte a breve
Buonasera a tutti.Vi chiedo consiglio su un problema che non riesco a risolvere.Devo fare un esame in cui dovrò fare dei semplici programmi in C o C++ e con le librerie MPI.Questi programmini li dovrò poi provare sulle macchine parallele a cui il mio prof ci fa collegare.Il mio problema principale è che non sono un asso della programmazione,ho fatto solo qualche programma in C e C++ per altri esami,niente di più.Principalmente però quello che non riesco a capire è come devo fare a compilare..cioè..so che per compilare devo digitare mpicc se voglio compilare un programma scritto in C..ma come faccio se sul mio portatile non ho le librerie MPI?Inoltre uso prevalentemente Windows XP,per ora con Ubuntu sono alle prime armi perciò non lo considero per ora.Ho visto su un sito su MPI che probabilmente dovrei installare le librerie MPI sulla mia macchina..ma come?Io per ora ho sempre usato per scrivere i programmi e per compilare Dev-C++.C'è qualcuno che mi può spiegare come fare?Vi ringrazio già da adesso del tempo dedicatomi..spero in risposte a breve
Ciao,
per la compilazione, puoi compilare sulla macchina remota che sicuramente ha il compilatore parallelo. Oppure puoi scaricarti ed installarti mpich o OpenMPI in locale e testare i tuoi programmi. Se fai tutto in remoto, non devi installare assolutamente nulla, ed è la via migliore :)
ArchangelInHell
19-05-2008, 20:55
...ma intendi se mi collego in remoto alla macchina remota sulla quale il mio prof mi ha fatto l'account?E quale sono i comandi per la compilazione e l'esecuzione di un programma .c o .cpp presente sul mio portatile?E inoltre..nello scrivere il comando devo scrivere,credo,il percorso di dove è il mio file.c?
...ma intendi se mi collego in remoto alla macchina remota sulla quale il mio prof mi ha fatto l'account?E quale sono i comandi per la compilazione e l'esecuzione di un programma .c o .cpp presente sul mio portatile?E inoltre..nello scrivere il comando devo scrivere,credo,il percorso di dove è il mio file.c?
La macchina remota ha un compilatore parallelo. Come si chiami dipende dall'implementazione installata:mpicc, mpixlf, ecc ecc. A parte il comando, la compilazione è identica a quella di un programma seriale. Questi non sono altro che wrapper i quali, dopo aver richiamato le librerie parallele e preparato l'ambiente, richiamano il compilatore C seriale.
Ti conviene lavorare direttamente in remoto con VI ad esempio, o se lavori sotto Linux direttamente con editor grafici.
ArchangelInHell
19-05-2008, 21:17
Che sarebbe VI?Ecco il problema è quello..per la maggior parte io lavoro con Windows e non con Linux
Che sarebbe VI?Ecco il problema è quello..per la maggior parte io lavoro con Windows e non con Linux
Non puoi scrivere un sorgente sotto Windows e darlo ad una macchina Linux. VI è un editor di testi di Linux. I sistemi interpretano il comando di "a capo" in maniera diffferente, a meno di non convertirli a mano. Comunque ti consiglio di studiarti un pò di cose base dei C prima di fare programmazione parallela, in quanto non è affatto semplice. Anche di Linux direi..
ArchangelInHell
19-05-2008, 21:38
...non ho mai detto di essere un mago di C...l'ho scritto anche nel primo post,spero tu abbia letto perchè ho scritto anche che anche in Linux sono alle prime armi..e comunque non ho mai detto che la macchina è Linux
...non ho mai detto di essere un mago di C...l'ho scritto anche nel primo post,spero tu abbia letto perchè ho scritto anche che anche in Linux sono alle prime armi..e comunque non ho mai detto che la macchina è Linux
Io ti ho solo consigliato di ripassarti le basi del C, vista anche la tua seconda domanda sulla compilazione. In genere poi, queste macchine parallele sono sotto Linux. Secondo te ti rispondo senza leggere il primo post? :confused:
Se uno ti consiglia di ripassare le cose mica devi prendertela ;) Il mio è un consiglio, poi fai tu.. Ma mettersi a scrivere programmi paralleli, sapendo poco di C mi pare sconsigliato, in quanto è una cosa abbastanza avanzata.
ArchangelInHell
19-05-2008, 21:44
Già hai ragione scusami..è che sono consapevole dei miei limiti ma mi scoccia che i prof danno per scontato tante cose...e scusa se me la prendevo un pò ma sto sempre con la paura che quando faccio domande ovviamente idiote le persone si possono girare dandomi dell'ignorante...il che in parte è vero...ma se alcune cose non le so è anche perchè per gli esami che ho fatto non mi son mai servite...poi quando mi servono mi attrezzo..ma devo avere anche il tempo di farlo...
Già hai ragione scusami..è che sono consapevole dei miei limiti ma mi scoccia che i prof danno per scontato tante cose...e scusa se me la prendevo un pò ma sto sempre con la paura che quando faccio domande ovviamente idiote le persone si possono girare dandomi dell'ignorante...il che in parte è vero...ma se alcune cose non le so è anche perchè per gli esami che ho fatto non mi son mai servite...poi quando mi servono mi attrezzo..ma devo avere anche il tempo di farlo...
Non ti sto dando dell'ignorante. Ma come tutte le cose, per fare argomenti avanzati, ti servono le basi. Comunque se hai problemi in futuro posta pure qua, che con MPI ci lavoro ;) Appena ho tempo ti rispondo.
ArchangelInHell
19-05-2008, 21:50
Ok grazie sei molto gentile!
ArchangelInHell
19-05-2008, 22:11
Ecco allora senti...in pratica l'altro giorno un mio amico mi ha dato un programmino(che si chiama "putty")per collegarmi alla macchina parallela..dopo aver inserito l'account mi apre la finestra dove metto poi la password e quindi mi esce così:
Kickstarted 09:42 07-Jun-2007
Rocks Frontend Node - atlas Cluster
[st010@atlas ~]$
questo perchè io sono st010
Per compilare come ovviamente hai detto tu devo usare mpicc ma se provo a scrivere
Kickstarted 09:42 07-Jun-2007
Rocks Frontend Node - atlas Cluster
[st010@atlas ~]$ mpicc -o exe_c mpi_c.c
comando che,ahime,lo so,ho visto da wikipedia dove mpi_c.c è un semplice file che ho messo sul desktop di Windows,ma dopo aver dato invio mi dice
Kickstarted 09:42 07-Jun-2007
Rocks Frontend Node - atlas Cluster
[st010@atlas ~]$ mpicc -o exe_c mpi_c.c
gcc: mpi_c.c: No such file or directory
mpicc: No such file or directory
Invece di questo dovrei scrivere invece,come scritto su una guida di MPI:
To compile the MPI program simple.c for a Sun workstation, the compile line
would be:
mpicc -mpiarch sun4 -o simple simple.c
ovviamente cambiando simple.c in mpi_c.c e invece di sun4 dovrei mettere st010?
Probabilmente ho scritto un mare di cazzate ma se hai tempo fammi sapere..(e comunque credo che in tutto questo il vero problema sia perchè faccio tutto in Windows,se sei tanto gentile di dirmi come fare su Ubuntu 7.10 te ne sarei grato ma considera che ho messo la versione a 64 bit,non so se ci siano differenze)
ilsensine
20-05-2008, 09:25
http://www.hwupgrade.it/forum/showthread.php?t=1649196
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.