>> Trung tâm Vật lý lý thuyết

Cụm máy tính

Các ứng dụng

a) Hệ thống lưu trữ dữ liệu

Cụm máy tính sử dụng hệ thống NFS (Network File System) để chia sẻ thư mục chủ của người dùng (/home/username) ở máy chủ tới các nút tính toán. Do tốc độ truyền dữ liệu qua hệ thống NFS không cao nên nếu chương trình tính toán cần đọc/ghi nhiều dữ liệu ra ổ cứng (cỡ Gb trở lên) thì việc lưu các files dữ liệu này trong thư mục chủ của người dùng sẽ không hiệu quả.

Ổ cứng của mỗi nút tính toán đều có phân vùng /scratch với dung lượng khá lớn (khoảng 0.9Tb) và tốc độ đọc/ghi dữ liệu ra phân vùng này cao hơn nhiều lần đọc/ghi qua hệ thống NFS. Vì vậy, người dùng nên sử dụng phân dùng này để lưu dữ liệu cần đọc/ghi trong quá trình chạy các ứng dụng. Tuy nhiên, khi login vào máy chủ tcp, người dùng sẽ không nhìn thấy phân vùng /scratch ở các nút và mỗi nút chỉ nhìn được vùng /scratch của nó nên cũng có những hạn chế nhất định. Chẳng hạn như cần phải tạo thư mục trong phân vùng /scratch thì sẽ phải login vào từng nút để làm việc đó. Những hạn chế kiểu này có thể được khắc phục một phần bằng tiện ích pdsh (parallel distributed shell)

Tiện ích pdsh cho phép thực thi một câu lệnh trên tất cả các nút tính toán thay vì phải lần lượt truy cập vào từng nút và thực thi lệnh này. Ví dụ, lệnh sau tạo thư mục mang tên người dùng ở phân vùng /scratch trên ổ cứng địa phương của các nút tính toàn từ c01 đến c04

      $ pdsh -w c[01-04] mkdir /scratch/$USER 

Câu lệnh sau liệt kê tất cả file và thư mục trong /scratch/username ở mỗi nút tính toán

      $ pdsh -w c[01-04] ls /scratch/$USER 

b) Tiện ích Environment Modules

Hệ thống cluster đang thử nghiệm sử dụng tiện ích Environment Modules để quản lý các phần mềm ứng dụng, trình biên dịch, ....

Một số câu lệnh thông dụng

Liệt kê tất cả các ứng dụng Modules quản lý

      $ module avail 

Nạp một ứng dụng có tên modulename

      $ module load modulename 

Loại bỏ ứng dụng modulename

      $ module unload modulename

Hoán đổi hai phiên bản (loại bỏ modulename/version_xxx và nạp modulename/version_yyy)

      $ module switch modulename/version_xxx modulename/version_yyy

Xem các ứng dụng đang được nạp

      $ module list

Loại bỏ toàn bộ các ứng dụng đang được nạp

      $ module purge

Để tránh việc phải nạp các ứng dụng mỗi lần login, người dùng có thể đặt chế độ tự động bằng cách đặt các lệnh này trong file .bashrc trong thư mục chủ. Chẳng hạn nếu muốn nạp tự động modulename thì thêm dòng sau vào file /home/username/.bashrc

      module load modulename

(phải chạy lệnh source /home/username/.bashrc hoặc log out rồi log in lại để cập nhật)

c) Các thư viện toán học

Hệ thống được cài đặt các thư viện toán học tối ưu hóa, chứa các chương trình toán học ứng dụng trong khoa học và kỹ thuật như BLAS (các phép tính ma trận), LAPACK (giải phương trình ma trận, bài toán hàm riêng trị riêng của ma trận, ...), FFT (Fast Fourier Transform), .v.v. Sử dụng các thư viện tối ưu hóa này có thể làm chương trình chạy nhanh hơn nhiều lần so với việc tự biên dịch lại từ mã nguồn.

Để sử dụng các thư viện này, trước hết cần nạp bằng lệnh module load sau đó tạo liên kết khi biên dịch chương trình

d) Một số ứng dụng phổ biến khác

Máy chủ tcp được cài đặt một số ứng dụng phổ biến sau:

Các trình soạn thảo: vi, emacs, pico, ...

Vẽ đồ thị: Gnuplot phiên bản 4.2, xmgrace phiên bản 5.1.22

GNU Octave: phần mềm mã nguồn mở, là sự thay thế gần như hoàn hảo của Matlab (không được cài đặt vì không có license)

Các trình biên dịch: GNU compiler collection phiên bản 4.4.6 (C, C++, Fortran, ...), openmpi phiên bản 1.5.3 dùng với GNU compilers 4.4.6, python 2.6.6, ...