LPBS (Local Portable Hệ thống lô) là một công cụ để cạnh tranh với PBS trên một máy trạm địa phương.
PBS / TORQUE là một hệ thống lập lịch trình công việc được sử dụng trên nhiều cụm máy tính hiệu năng cao. Các gói LPBS cung cấp công cụ để chạy các kịch bản công việc PBS vào một máy trạm địa phương. Cụ thể, LPBS cung cấp lệnh lqsub mà có các tùy chọn tương tự như lệnh qsub PBS và chạy một tập lệnh công việc tại địa phương, trong một môi trường gần giống với một trong đó PBS / TORQUE sẽ cung cấp. Công việc sẽ chạy ở chế độ nền và được gán một ID công việc. Không giống như các hệ thống PBS, LPBS sẽ không thực hiện bất kỳ lịch trình, nhưng chỉ đơn giản là sẽ chạy các công việc được đệ trình. LPBS cung cấp công cụ quản lý công việc hơn nữa để chạy.
Cài đặt
LPBS có thể được cài đặt từ PyPi, sử dụng
pips cài đặt LPBS
Ngoài ra, các gói có thể được cài đặt từ nguồn với
python setup.py cài đặt
Cấu hình
Cửa hàng LPBS tất cả các cấu hình và thời gian chạy của nó dữ liệu trong thư mục nhất định trong biến môi trường $ LPBS_HOME. Biến môi trường này phải được xác định. Các cấu hình là trong các tập tin bên trong lpbs.cfg $ LPBS_HOME. Nếu tập tin này không tồn tại khi có một trong các kịch bản LPBS đang chạy, một tập tin cấu hình với các giá trị mặc định sau sẽ được tạo:
[Server]
# Full hostname của trình server (hostname.domain). Sẽ được thực hiện có sẵn
# Để chạy việc làm thông qua các PBS_SERVER biến môi trường. ID công việc sẽ kết thúc
# Trong tên máy server
hostname: localhost
miền: địa phương
[Node]
# Full hostname của nút thực hiện (hostname.domain). Sẽ được thực hiện có sẵn
# Để chạy việc làm thông qua các PBS_O_HOST biến môi trường. Kể từ LPBS là
# Được thiết kế để thực hiện các công việc tại địa phương, các thiết lập ở đây nên nói chung là
# Giống với những người trong [Server] phần
hostname: localhost
miền: địa phương
[LPBS]
# Thiết lập để thực hiện công việc.
# Nếu 'username_in_jobid' được kích hoạt, các ID công việc bạn sẽ có dạng
# 'Seqnr.user.hostname.domain' nơi 'người sử dụng' là tên của người sử dụng
# Trình công việc.
# Các tập tin được đưa ra trong 'sequence_file' được sử dụng cho việc theo dõi của 'seqnr'
# Xuất hiện trong các ID công việc.
# Các tập tin được đưa ra trong 'logfile' được sử dụng để đăng nhập tất cả các sự kiện LPBS. Cả hai
# 'Sequence_file' và 'logfile' có liên quan đến $ LPBS_HOME.
username_in_jobid: 0
sequence_file: sequence
logfile: lpbs.log
[Scratch]
# Cài đặt cho các không gian đầu cung cấp công ăn việc làm. 'Scratch_root' định nghĩa một
# Địa điểm nơi công việc nên ghi dữ liệu tạm thời. Nếu được cho là một đường dẫn tương đối,
# Nó là tương đối so với $ LPBS_HOME. Biến môi trường sẽ được mở rộng tại
# Thời gian của trình công việc.
# Nếu giá trị của # 'create_jobid_folder' được thiết lập để 1, một thư mục với tên của
# ID công việc toàn được tạo ra bên scratch_root. Thư mục này là tự động
# Xóa khi công việc kết thúc, trừ khi 'keep_scratch' là 1. Nếu công việc
# Thất bại, các scratch của bạn sẽ không bị xóa, trừ khi 'delete_failed_scratch' được thiết lập
# 1.
scratch_root: $ SCRATCH_ROOT
create_jobid_folder: 0
keep_scratch: 0
delete_failed_scratch: 0
[Thông báo]
# Cài đặt trên cách người sử dụng nên được được thông báo về các sự kiện như sự bắt đầu
# Và kết thúc công việc. Nếu sent_mail được thiết lập để 1, email sẽ được gửi cho
# Thông báo tùy thuộc vào giá trị của tùy chọn 'm' để lqsub. Nếu
# 'Send_growl' được thiết lập để 1, Growl (http://growl.info) được sử dụng để thông báo
# Trên MacOS X. Thông báo qua Growl không đưa vào tài khoản các tùy chọn 'm'
# Trong đệ trình công việc.
send_mail: 0
send_growl: 0
[Thư]
# Thiết lập SMTP cho các thông báo email. Email thông báo sẽ được gửi từ
# Địa chỉ được đưa ra bởi 'từ' tùy chọn. Các máy chủ SMTP được đưa ra trong "smtp 'là
# Được sử dụng cho việc gửi email, nếu 'authenticate "được thiết lập để 1, xác thực là
# Thực hiện với sự 'username' cho và 'password'. Nếu 'tls' là 1, mã hóa TLS
# Sẽ được sử dụng.
từ: nobody@example.org
smtp: smtp.example.com:587
Tên người dùng: người dùng
mật khẩu: mật
xác thực: 0
TLS: 1
[Growl]
# Cài đặt các thông báo Growl. Thông báo được gửi đến một trong hai
# Localhost hoặc một máy chủ từ xa thông qua giao thức GNTP. Các 'hostname' thiết lập
# Cung cấp cho các địa chỉ và cổng của máy chủ Growl, sự trao 'mật khẩu' là
# Dùng để xác thực (lưu ý rằng nếu gửi vào localhost, không có
# Xác thực là cần thiết, và mật khẩu sẽ được bỏ trống). Nếu
# 'Dính' được thiết lập để 1, các thông báo Growl sẽ được dính. Nó là
# Có thể gửi thông báo cho nhiều hơn một máy chủ. Trong trường hợp này, cả hai
# 'Hostname "và" mật khẩu "phải là một danh sách bằng dấu phẩy của các giá trị, với
# Mỗi mục tương ứng với một máy chủ. Ví dụ:
# Hostname: localhost, remotehost
# Mật khẩu:, bí mật
hostname: localhost: 23053
mật khẩu:
dính: 0
[Đăng nhập]
# 'Logfile "mang tên của tập tin log trung tâm, so với $ LPBS_HOME.
logfile: lpbs.log
Lưu ý rằng nếu các tập tin cấu hình mặc định được sử dụng, các biến môi trường $ SCRATCH_ROOT phải được xác định và các thư mục nó trỏ tới nên tồn tại và có khả năng ghi cho tất cả người dùng có thể trình công việc.
Đối với một hệ thống toàn cài đặt, / var / lpbs là một vị trí phù hợp với $ LPBS_HOME. Các biến môi trường có thể được thiết lập trong /etc/bash.bashrc cho tất cả người dùng. Đối với một cài đặt trong không gian sử dụng, virtualenv được khuyến khích.
Sau khi các tập tin cấu hình chính, các tập tin $ HOME / .lpbs.cfg cũng sẽ được đọc. Một người sử dụng có thể sử dụng điều này để ghi đè lên các thiết lập trong cấu hình hệ thống. Cuối cùng, các lệnh qsub cũng có một lựa chọn --config đó cho phép xác định được nêu ra một tập tin cấu hình bổ sung để được đọc.
Cách sử dụng
LPBS chứa các kịch bản lqsub, lqstat, và lqdel, mà thi đua các PBS / TORQUE lệnh qsub, qstat, và lqdel, tương ứng. Lệnh lqsub được sử dụng để gửi các công việc, lqstat được sử dụng để hiển thị thông tin về công việc đang chạy, và lqdel được sử dụng để hủy bỏ công việc chạy. Ví dụ như:
goerz @ localhost: ~> lqsub job.pbs
3.localhost.local
goerz @ localhost: ~> lqstat
Id công việc Tên tài khoản Walltime
-------------------- --------------- --------------- ---------------
3.localhost.local pbstest goerz 00:00:22
goerz @ localhost: ~> lqstat -f 3.localhost.local
Mã công việc: 3.localhost.local
& Nbsp; Job_Name = pbstest
& Nbsp; Job_Owner = goerz
& Nbsp; server = localhost.local
& Nbsp; exec_host = localhost.local
& Nbsp; PID = 14.649
& Nbsp; Error_Path = thiết bị lỗi chuẩn
& Nbsp; Join_Path = True
& Nbsp; Mail_Points = n
& Nbsp; Output_Path = pbstest.out
& Nbsp; resources_used.walltime = 00:00:43
goerz @ localhost: ~> lqdel 3.localhost.local
Lệnh qsub được thiết kế để hiểu được tất cả các tùy chọn dòng lệnh của lệnh qsub trong TORQUE phiên bản 2.18, ngoại trừ tất cả các tùy chọn liên quan đến lập kế hoạch được âm thầm bỏ qua. Do đó, tất cả các tập lệnh công việc PBS nên submittable mà không cần thay đổi. Để biết chi tiết, chạy lqsub, lqstat, và lqdel với tùy chọn --help, và / hoặc xem hướng dẫn TORQUE.
Một ví dụ Job Script
Sau đây là một ví dụ về một tập lệnh công việc PBS đơn giản mà sẽ in ra môi trường đầy đủ rằng việc nhìn thấy. Bạn có thể muốn gửi lệnh này với cả LPBS và PBS / TORQUE để xác minh rằng với các thiết lập thích hợp trong lpbs.cfg, LPBS cung cấp một môi trường giống hệt như LPBS.
#! / Bin / bash
#PBS -N Pbstest
#PBS -j Oe
#PBS -l Nút = 1: PPN = 1
#PBS -l Walltime = 00: 00: 10
#PBS -l Mem = 10MB
#PBS -o Pbstest.out
echo "################################################ #### "
echo "User: $ PBS_O_LOGNAME"
echo "công việc hàng loạt bắt đầu vào $ PBS_O_HOST"
echo "PBS việc id: $ PBS_JOBID"
echo "PBS Tên công việc: $ PBS_JOBNAME"
echo "PBS mục hoạt động: $ PBS_O_WORKDIR"
echo "Job bắt đầu vào" `` hostname` date`
echo "thư mục hiện tại:" `pwd`
echo "môi trường PBS: $ PBS_ENVIRONMENT"
echo "################################################ #### "
echo "################################################ #### "
echo "Full Môi trường:"
printenv
echo "################################################ #### "
echo "Các công việc đang được thực hiện trên các nút sau:"
cat $ {} PBS_NODEFILE
echo "################################################ ########## "
echo "Job hoàn thành:" `date`
exit 0
Yêu cầu :
- Python
Bình luận không