IOP

Viện Hàn lâm Khoa học và Công nghệ Việt Nam

Viện Vật lý

Cụm máy tính hiệu năng cao

Dịch chương trình

Trên cluster hiện có cài đặt bộ dịch mã nguồn mở GNU (gfortran, gcc v.v.) và Intel Fortran.

Dịch chương trình Fortran (F77, F90, F95):

$ gfortran -O2 prog.f90
$ ifort -O2 prog.f

Dịch chương trình C, C++:

$ gcc -O2 prog.c

Các lệnh trên sẽ cho chương trình chạy dạng nhị phân có tên mặc định là "a.out" (với GNU). Muốn thay đổi tên này có thể dùng lựa chọn -o. Ví dụ:

$ gfortran -O2 prog.f90 -o myprog

trong đó "myprog" là tên của chương trình chạy.

Lựa chọn -O2 giúp tối ưu hóa mã nguồn và có thể làm chương trình chạy nhanh hơn vài lần (người dùng có thể thử với các lựa chọn khác -O hoặc -O3, xem thêm hướng dẫn bằng lệnh "man gfortran"). Trước khi chạy những chương trình dài nên thử xem bộ dịch nào tốt hơn và lựa chọn tối ưu hóa nào tốt hơn cho một chương trình tương tự nhưng thời gian chạy ngắn hơn (ví dụ bằng cách đặt số bước tính ít hơn). Có thể đo thời gian chạy của một chương trình bằng lệnh time:

$ time ./myprog
Chương trình Pascal có thể được biên dịch bằng free Pascal compiler (fpc)
$ fpc prog.pas
Khác với GNU compilers, fpc sẽ tạo ra tập tin định dạngnhị phân có tên mặc định là tên của file pascal ("prog" trong ví dụ trên). Để tạo ra file nhị phân với tên khác có thể dùng lựa chọn -o nhưng tên file nhị phân phải viết liền ngay sau -o (KHÔNG có dấu cách)

Dịch chương trình song song với MPI

Phiên bản MPI được cài trên cluster là OpenMPI.

Để dịch chương trình dùng mpif77, mpif90 và mpicc. Ví dụ:

$ mpif90 -O2 myprog.f90 -o myprog