2014-04-16 20 views
16

Tôi không hiểu thông báo lỗi. Tôi đang cố gắng làm là để chạy một ứng dụng MPICH2 sau khi tôi cài đặt mpich2 phiên bản 1.4 hoặc 1.5 đến /opt/mpich2 (cả hai phiên bản không thành công với cùng một lỗi). Ứng dụng MPI của tôi đã được biên dịch với 1.3 nhưng tôi có thể chạy nó với mpi 1.4 trên một máy trạm khác. Tôi đang thử nghiệm nó trên Ubuntu 12.04.MPICH2 gethostbyname không thành công

Fatal error in PMPI_Init_thread: Other MPI error, error stack: 
MPIR_Init_thread(467)..............: 
MPID_Init(177).....................: channel initialization failed 
MPIDI_CH3_Init(70).................: 
MPID_nem_init(319).................: 
MPID_nem_tcp_init(171).............: 
MPID_nem_tcp_get_business_card(418): 
MPID_nem_tcp_init(377).............: gethostbyname failed, localhost (errno 3) 

Trả lời

2

Là câu hỏi khác, câu trả lời có lẽ là cùng tôi đã dành thời gian trước cho OpenMPI: gethostname() function missing in openMPI

Giải pháp di động MPI là sử dụng MPI_Get_processor_name()

+0

Cảm ơn câu trả lời. Tôi đã bỏ lỡ dòng đầu tiên của thông báo lỗi. – biocyberman

+0

@biocyberman bạn có thể muốn chấp nhận câu trả lời sau đó. –

5

Lỗi này chỉ ra rằng có một vấn đề giải quyết localhost. Kiểm tra tệp/etc/hosts của bạn, hãy chắc chắn rằng bạn đã định nghĩa đúng localhost ở đây, nó sẽ trỏ đến 127.0.0.1. Hãy thử sử dụng ssh để kết nối với localhost, đảm bảo rằng các công trình là tốt.

+0

ssh đến localhost hoạt động. Tôi sẽ cố gắng tìm kiếm những thứ khác và quay lại sau. – biocyberman

+5

Đây là những gì tôi phải làm để giải quyết vấn đề này: đặt tên máy chủ thích hợp thông qua 'sudo scutil --set HostName' và sau đó thêm tên máy chủ mới (nói my_computer.local) vào/etc/hosts như' 127.0.0.1 my_computer.local '.Ngoài ra, bạn phải bật quyền truy cập SSH trong cài đặt "Chia sẻ" và thêm khóa công khai của bạn vào tệp authorized_keys ('cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'). – herrherr

10

gì làm việc cho tôi là như sau:

Hãy chắc chắn rằng tên máy của bạn là như nhau cho 1 và 2 dưới đây:

  1. terminal hostname
  2. "/ etc/hosts" hostname

Vì vậy, nếu bạn gõ cat /etc/hosts trong terminal nó sẽ giống như thế:

// 127.0.0.1  my_hostname 

Tên máy chủ của tôi không giống với 1 và 2 đối với tôi. Một khi tôi thay đổi chúng để phù hợp với sau đó chương trình mpi của tôi sẽ thực hiện.

Để thay đổi tên máy thiết bị đầu cuối của bạn gõ như sau: sudo scutil --set HostName my_new_host_name

Để thay đổi/etc/hosts hostname bạn gõ như sau: sudo nano /etc/hosts

và sau đó thêm dòng

127.0.0.1  my_new_hostname 
+0

Tôi đã gặp vấn đề tương tự chính xác này (lưu ý điều này sau một năm sau khi đăng bài gốc) - và câu trả lời này đã cung cấp giải pháp cho tôi. http://stackoverflow.com/questions/42041706/mpi4py-fatal-error-in-simple-hello-world?noredirect=1#comment71258508_42041706 – aph

10

Solution cho macOS

Tôi tình cờ gặp sự cố này trên macOS 10.12.1.

Giải pháp là thêm 127.0.0.1 computername.local vào /etc/hosts. tập tin của bạn sẽ trông nhiều hơn hoặc ít hơn như thế này:

## 
# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
127.0.0.1 localhost 
127.0.0.1 computername.local 
255.255.255.255 broadcasthost 
::1    localhost 

Bạn có thể thay đổi/kiểm tra tên máy tính của bạn nếu bạn đi đến System Preferences>Chia sẻ>Computer Name.

Các vấn đề liên quan