2017-10-08 146 views
-1

我試圖運行MPI程序,但我有一些問題與安裝。我從儲備庫中獲得數據包,我可以編譯我的程序,但是當我嘗試運行該程序,我可以做T吧。 嗯,我的計劃是一點點比最大的「Hello World」的,但我的問題是與MPI庫(我想是這樣),不與代碼。這裏是我的「你好世界」平行(當然西班牙語):MPI程序運行在Linux

#include <stdio.h> 
#include <mpi.h> 

int main(int argc, char *argv[]) 
{ 
int rank, size; 

MPI_Init(&argc, &argv); 

MPI_Comm_rank(MPI_COMM_WORLD, &rank); 
MPI_Comm_size(MPI_COMM_WORLD, &size); 

printf("Hola Mundo! Soy el %d de %d\n", rank, size); 

MPI_Finalize(); 

return 0; 
} 

當我使用mpicc出現hola文件。

mpicc hola.c -o HOLA

然後我跑我的程序:

的mpirun -np 5 ./hola

的輸出(用於@吉勒)

LS -1ħ OLA

只是

HOLA

從COMAND線輸出顯示是這樣的:

[proxy:0:[email protected]] HYDU_create_process 
    (./utils/launch/launch.c:75): execvp error on file hola (No such file 
    or directory) 
    [proxy:0:[email protected]] HYDU_create_process 
    (./utils/launch/launch.c:75): execvp error on file hola (No such file 
or directory) 
[proxy:0:[email protected]] HYDU_create_process 
(./utils/launch/launch.c:75): [proxy:0:[email protected]] 
HYDU_create_process (./utils/launch/launch.c:75): execvp error on file 
hola (No such file or directory) 
execvp error on file hola (No such file or directory) 
[proxy:0:[email protected]] HYDU_create_process 
(./utils/launch/launch.c:75): execvp error on file hola (No such file 
or directory) 




Well the thing is that i dont know what is the problem. 

回答

0

確定。我可以讓它工作。 我不是在Linux方面的專家並安裝軟件包。似乎有一個包mpi文件編譯,並有另一個包運行mpi文件。我稍後安裝了編譯軟件包和運行軟件包。然後我「打開」運行包,我可以運行我的程序。 首先我得到了編譯器包。

的apt-get安裝lam4-dev的

其次,我得到了運行包。

的apt-get安裝LAM-運行

三我打開運行時包

lamboot

這裏是我的命令行輸出。首先運行該程序

的mpirun -np 5 ./algo

Hola! Soy el 0 de 5 
Hola! Soy el 2 de 5 
Hola! Soy el 1 de 5 
Hola! Soy el 3 de 5 
Hola! Soy el 4 de 5 

感謝@Gilles你的回答和對不起,如果我是一個菜鳥的問題,我的英語水平。

0

在您提出的問題,您應該總是包括命令行導致錯誤消息。

無論如何,看來你跑

mpirun hola 

,而不是

mpirun ./hola 
+0

我用了mpirun ./hola和mpirun hola(可能有用)。抱歉,報告錯誤的行是。 「mpirun ./hola」或「mpirun -np 3 ./hola」,當我想使用多個進程時。 – Patricio

+0

請用你的'mpicc'和'mpirun'命令和輸出編輯你的問題。你只在一臺機器上運行嗎? 'ls -l hola'說什麼? –

+0

'ls -l'這是'ls減小寫L'。您使用的是哪個發行版和MPI庫?如果你'mpirun -np 5'pwd'/hola'怎麼辦?如果它仍然不起作用,你可以嘗試'strace -f -e execve mpirun -np 5'pwd'/hola'?你能確認你只在一個節點上運行,並且在'miMachine-LMint'上調用了'mpirun'嗎?如果你'ls -l hola; mpirun -np 1 ls -l hola'? –