Điểm:2

Làm cách nào để thay đổi Biến môi trường cho OpenMPI?

lá cờ cn

Tôi đã cài đặt Ubuntu 20.04 và cần cài đặt OpenMPI 3.1.6 với gcc 8.4.0.

Tôi đã tải xuống quả bóng tar từ OpenMPI và cài đặt nó bằng lệnh sau

tar-xzf openmpi-3.1.6.tar.gz && cd openmpi-3.1.6
PARGS="env CC=/usr/bin/gcc FC=/usr/bin/gfortran CXX=/usr/bin/g++"
ARGS=" --enable-shared --enable-mpi-fortran=usempi"
ARGS+=" --enable-mpi-thread-multiple"
ARGS+=" --prefix=/openmpi/3.1.6/gcc/8.4.0"
mkdir -p bản dựng && cd bản dựng
$PARGS ../cấu hình $ARGS
$PARGS thực hiện -j8 && thực hiện cài đặt

Nó được cài đặt tốt, không có vấn đề gì. Nhưng khi tôi cố gắng

mpirun --version

Tôi nhận được lỗi sau đây

Không tìm thấy lệnh 'mpirun', nhưng có thể được cài đặt bằng:

và sau đó đưa ra các tùy chọn khác nhau bằng cách sử dụng sudo apt-get (đó là cách tôi đã cài đặt ban đầu, nhưng nó không hỗ trợ 3.1.6).

Tôi cho rằng nó liên quan đến các biến môi trường, rằng Linux không thể tìm thấy phần mềm. Vì vậy, tôi đã tìm kiếm và thấy rằng trong Câu hỏi thường gặp về OpenMPI, nó đề cập đến những điều sau:

"giả sử rằng bạn đã điều chỉnh các biến môi trường PATH và/hoặc LD_LIBRARY_PATH của mình sang vị trí mới nơi Open MPI hiện đang cư trú"

... nhưng sau đó nó không nói làm thế nào để làm điều đó. Tôi đã thử tìm kiếm nhưng nó nói về tất cả các loại ~/.FILE khác nhau (trong đó tệp là bash hoặc lib64 hoặc lib32 hoặc các tệp khác).

Tôi thực sự phải thay đổi điều gì trong các biến môi trường và trong tệp nào? Tôi sử dụng thiết bị đầu cuối Ubuntu cho hầu hết mọi thứ.

============================================================ Cảm ơn bạn, ubfan1! Tôi đã phải thêm phần sau vào /.profile:

# đặt đường dẫn OpenMPI
xuất OMPI=/openmpi/3.1.6/gcc/8.4.0
xuất PATH=$PATH:$OMPI/bin
xuất LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OMPI/lib

Và bây giờ nó hoạt động! Hệ thống của tôi có thể tìm thấy mpirun và phiên bản là 3.1.6!

N0rbert avatar
lá cờ zw
Đã xảy ra sự cố với OpenMPI 4.0.3 từ [kho lưu trữ chính thức](https://packages.ubuntu.com/focal/libopenmpi-dev)? Ý tưởng cuối cùng của bạn là gì?
sfwalter avatar
lá cờ cn
Phần mềm tôi đang sử dụng không chạy với OpenMPI mới hơn 3.1.6. Đó là mã nghiên cứu nên nó không được cập nhật khi các gói khác cập nhật.
Điểm:1
lá cờ cc

Hãy xem .profile của thư mục chính của bạn để xem cách thêm các thứ vào PATH của bạn.
Nơi bạn cài đặt openmpi có thể có các thư mục con có tên bin, lib64, v.v. Ví dụ: $HOME/openMPI là nơi bạn đã chọn để cài đặt nó, vì vậy hãy thêm $HOME/openMPI/bin vào PATH của bạn ở cuối .profile của bạn: xuất PATH="$HOME/openMPI/bin:$PATH" Sau đó thêm dòng:" xuất LD_LIBRARY_PATH=$HOME/openMPI/lib64 (giả sử bạn không có LD_LIBRARY_PATH hiện có.) Bây giờ bạn đã có một vị trí ...openMPI/bin sớm trong PATH của mình, bạn có thể ghi đè các lệnh hệ thống tiêu chuẩn bằng cách đặt các lệnh mới ở đó, chẳng hạn như một liên kết có tên gcc với phiên bản gcc-8.4 (có sẵn vào ngày 20.04). Nếu bạn cần một phiên bản gcc không có sẵn trong các gói tiêu chuẩn, bạn chỉ cần đặt toàn bộ tệp thực thi (từ bất kỳ đâu bạn lấy nó) vào vị trí của liên kết. Có thể bạn không muốn ghi đè gcc mỗi khi đăng nhập. Trong trường hợp đó, chỉ cần thiết lập tập lệnh để chạy thay vì đưa các thay đổi vào .profile của bạn.

Các vấn đề thông thường:

  1. Thông tin đăng nhập của bạn không thực sự tạo shell đăng nhập, vì vậy .profile không được thực thi (Thường không phải là sự cố của Ubuntu, nhưng tất cả các đề xuất để đưa các mod PATH vào .bashrc đều xuất phát từ sự cố này.
  2. Bạn đã tạo một .bash_profile ghi đè lên .profile -- bạn nên biết nếu bạn đã làm điều đó và thay vào đó hãy sửa đổi .bash_profile.
  3. Các đề xuất sửa đổi /etc/alternatives để thay đổi gcc mặc định của hệ thống về cơ bản sẽ bẻ khóa hệ thống của bạn vào lần cập nhật tiếp theo và cần trình biên dịch tiêu chuẩn, đã phát hành, đã thử nghiệm.

Phần bổ sung đường dẫn của bạn có thể nên bắt đầu bằng dấu /, vì vậy /home/openmpi/... thay vì chỉ openmpi/... Tuy nhiên, hãy tìm trong thư mục openmpi và xem có thư mục bin nào không, đó là thư mục tôi mong đợi nếu thực sự có các tệp thực thi openmpi để chạy. Vào cái đó, bạn có thể thêm liên kết gcc vào gcc...bin cấp thấp hơn chỉ để giữ tất cả các chương trình openmpi lại với nhau. Lưu ý rằng gcc 8.4 có sẵn dưới dạng gói tiêu chuẩn trong Ubuntu 20.04, nhưng nếu bản cài đặt openmpi của bạn có một gói, bạn có thể sử dụng nó, nó sẽ không nhận được bất kỳ bản cập nhật nào, nếu có.

sfwalter avatar
lá cờ cn
Cám ơn bạn rất nhiều về điều này. Điều tôi không chắc chắn về.... .profile của tôi có những thứ như sau: # đặt PATH để nó bao gồm thùng riêng của người dùng nếu nó tồn tại nếu [ -d "$HOME/bin" ] ; sau đó ĐƯỜNG="$HOME/bin:$PATH" fi Vì vậy, tôi sẽ thêm # thiết lập ĐƯỜNG DẪN cho OpenMPI (lưu ý rằng nó không nằm trong $HOME/openmpi, thay vào đó là một thư mục ở trên...có vấn đề gì không? nếu [ -d "openmpi/3.1.6/gcc/8.4.0/bin" ] ; sau đó PATH="openmpi/3.1.6/gcc/8.4.0/bin:$PATH" fi Điều đó có đúng không?
sfwalter avatar
lá cờ cn
Nó đã làm việc! # đặt đường dẫn OpenMPI xuất OMPI=/openmpi/3.1.6/gcc/8.4.0 xuất PATH=$PATH:$OMPI/bin xuất LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OMPI/lib
lá cờ cc
Dễ dàng hơn để bạn thêm vào bài đăng ban đầu của mình và bạn có thể định dạng nó dưới dạng mã.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.