Review of Condor, Sun Grid Engine and pbs



tải về 48.1 Kb.
Chuyển đổi dữ liệu07.07.2016
Kích48.1 Kb.
#183
loạiReview
Review of Condor, Sun Grid Engine and PBS

1.Condor

1.1.Condor


Condor is a distributed job scheduler developed by Condor research project [1] at the University of Wisconsin-Madison Department of Computer Sciences.

Condor is a workload-management system for compute-intensive jobs. Such as other batch-systems (Portable Batch System, LSF), Condor has job queuing mechanism, scheduling policy, priority scheme, resource monitoring, and resource management.



1.2.Condor-G



2.Sun Grid Engine

2.1.1.Introduction

The Grid Engine project is an open source community effort to facilitate the adoption of distributed computing solutions. Sponsored by Sun Microsystems and hosted by CollabNet, the Grid Engine project provides enabling distributed resource management software for wide ranging requirements from compute farms to grid computing. The mission of the Grid Engine project is about expanding the application and use of distributed computing.

Sun Microsystem acquired Sun Grid Engine (SGE) that is a kind of Distributed Resource Management (DRM), July 2000. Sun Grid Engine products have both industrial and open source versions. Sun Grid Engine has another name is N1 Grid Engine. N1 Grid Engine version 6 (N1GE6) which is a latest release can be downloadable. Sun Grid Engine is now a grid middleware from Sun Microsystem.
Functionality for Sun Grid Engine (SGE)


  • Advance scheduling supports reservation to allocate distributed resources based on policy for better.

  • Has command queue and scheduling.

  • Supports many Unix/Linux operating systems.

  • Load-balancing and remote job execution.

  • Fault tolerant for job and scheduler.

  • Checking job status period time.

  • Execution batch job, parallel job (MPI/PVM) and Array of jobs.

  • Resource reservation.

  • Pause, re-run, and migration job to another host.

  • Report status by XML format (using qstat and qhost commands).


2.1.2.Sun Grid Engine Architecture




Figure 1: Sun Grid Engine architecture

2.1.3.Job Submission


The Fig. 2 is a Sun Grid Engine (SGE)’s job submission cycle. There are seven steps for daemons in SGE to work together to manage submitted job.

  1. The Execd daemons report load information to the Qmaster daemon

  2. User submits job using qsub command

  3. The Qmaster notifies Schedd about new job

  4. The Schedd dispatches job to an Execd

  5. The Qmaster delivers job to the Execd; Execd starts job using Shepherd

  6. At job ends, Execd notifes Qmaster about job finish

  7. Qmaster feeds jobs resource consumption in accounting database





Figure 2: Job submission cycle

3.N1 Grid Engine 6

N1 Grid Engine 6 (N1GE6) product has some advance features:



  • Software architecture designs theodicy with 500000 maximum numbers of simultaneous jobs and 10000 maximum numbers of hosts per master.

  • Implementation for Distributed Resource Management Application Programming Interface (DRMA) version 1.0 specification.

  • Scheduler supports resource reservation, back-filling, new prioritization shceme, improved algorithm, scheduling profile choices at install time

  • New concept about cluster queue with multiple queues for each computing node.

  • Analysis, monitoring and accounting:

    • Accounting per Department

    • Accounting per Project

    • Host load

    • Statistics

    • Average Job Turnaround time

    • Average Job Wait Time per day

    • Job Log

    • Number of Jobs Completed

    • Queue Consumables

N1 Grid Engine 6 (N1GE6) product which is a latest kind of Sun Grid Engine offers Distributed Resource Management (DRM) that manages the resources of a cluster whose nodes usually live in the same local area network (LAN). Distributed Resource Management Application Programming Interface (DRMAA) is a proposed standard for Grid computing that is support by N1GE6. First draft of DRMAPI was December 2001. DRMAA provides a standard way to submit a job, retrieve monitoring information, and initiate job control interactions such as suspension, etc. However, DRMAA does not implement how jobs are started, terminated, or suspended because these functional are job type specific (parallel, sequence) and DRM system specific [DRMAA].

The N1GE6’s scheduler supports resource reservation, urgency-based priorities and throughput. The N1GE6’s software architecture designs theodicy with 500000 maximum numbers of simultaneous jobs and 10000 maximum numbers of hosts per master (to increase significantly to SGE 5.3 with 150000 maximum jobs and 2000 maximum hosts). The scalability N1GE6 includes multithread Qmaster, data subsystem, high performance database, communication system. The Qmaster daemon uses multithread technique in order to separate independent tasks, such as job priority adjustment, run on separate threads. This multithreading improves efficiency, response time, and throughput by taking advance of common usage patterns in Grid Engine.

The N1 Grid Engine 6 introduces concept of cluster queues, earlier Grid Engine versions (5.x) is based on the fact that each queue is attached to a single physical execution host. Version 6 queue configuration allows for a queue to span more than one execution host to provide multiple hosts per queue configuration. (More detail on the Figure 3). The new cluster queue design is based on three major points:


  • Multiple hosts per queue configuration.

  • Different queue attributes per execution host.

  • Introduction of the concept of Hostgroups.




Figure 3: Old/New Queue Configuration
The new cluster queue supports Hostgroup and Hostlist parameter. A hostgroup contains a list of grid engine execution hosts and is refered to by an at (‘@’) sign followed by a string. A hostlist is a cluster queue attribute that will contain exec hosts and/or hostgroup. Figure 2 illustrates an example where the two created hostgroups @solaris64 and @linux belong to the queue named big.

# qconf –shgrp @solaris64

Groupname @solaris64

Hostlist balrog eomer ori
# qconf –shgrp @linux

Groupname @solaris64

Hostlist fangrn durin Frodo
# qconf –sq big

Qname big

Hostlist @solaris64 @linux

Seq_no 0, [@solaris64=1], [@linux=2], [ori=0]

Load_thresholds NONE



Suspend_thresholds NONE

Figure 4: Cluster Queue Configuration Example

4.Portal Batch System (PBS)

4.1.Giới thiệu về PBS


Portable Batch System hay PBS là một phần mềm để quản lí hệ thống cluster. Thông thường khi đăng nhập vào một hệ thống cluster thì người dùng sẽ đứng ở vị trí có quyền điều khiển hệ thống cluster hay còn gọi là Front-End node. Người dùng gọi một chương trình nào đó để chạy như ls, vi, … thì chương trình đó sẽ được chạy tức thì trên Front-End node, đây gọi là chạy chương trình trong chế độ tương tác (interactive mode), chế độ này thuận tiện để chạy các chương trình nhỏ và đơn giản, các chương trình tính toán phức tạp có thời gian thực thi lâu không nên sử dụng chế độ này mà nên được đưa vào thực thi thông qua một hệ thống hàng đợi (queue) như PBS chẳng hạn. Chương trình (job) được đưa vào hàng đợi sẽ chờ đến khi được gửi đến một hay nhiều node tính toán (computing node) nơi nó được phân bổ các processor riêng và thực thi đến khi kết thúc. Vì thế chương trình sẽ chạy nhanh hơn và tài nguyên trong cluster sẽ được tận dụng hiệu quả hơn.

Trong tài liệu này sẽ giới thiệu về chức năng, các thành phần, cách cài đặt trên hệ thống Torque PBS trên Linux và ví dụ về sử dụng Torque PBS.


4.2.Các thành phần và chức năng của PBS


Mục đích chính của PBS là cho phép người dùng gửi các chương trình thực thi theo dạng “bó” hay còn gọi là batch job. Batch job là những shell script với các thuộc tính điều khiển (control attribute), ta sẽ xem một ví dụ về batch job ở phần sau. PBS đưa batch job vào hàng đợi, lập lịch thực hiện các công việc và gửi trả kết quả về cho người dùng khi công việc đã hoàn tất.

Các thành phần của PBS:

PBS Commands

PBS hỗ trợ các lệnh để đưa công việc vào cluster (submit), theo dõi (monitor), thay đổi (modify) và hủy bỏ (delete) công việc. Có 3 lớp các lệnh trong PBS: lệnh người dùng (user command) có thể được sử dụng bởi tất cả người dùng có quyền sử dụng PBS, lệnh của người điều khiển (operator command) và lệnh của người quản lí (manager command). Hai lớp lệnh PBS sau yêu cầu phải có đặc quyền truy cập vào hệ thống. Chú ý là thành phần PBS command có thể được cài đặt độc lập mà không cần sự hiện diện của các thành phần khác của PBS, chỉ cần hệ thống cài đặt có trong danh sách hệ thống được hỗ trợ của PBS.

Các lệnh thuộc lớp user rất thường được sử dụng của PBS là:


  • qsub: submit job vào hệ thống.

  • qstat: theo dõi trạng thái hàng đợi và các công việc đã được submit.

  • qdel: hủy bỏ công việc đã được submit.

Cú pháp và cách sử dụng của các lệnh này sẽ được giới thiệu trong phần sau.

PBS Server

PBS server là nơi tập trung tất cả mọi hoạt động của hệ thống PBS. Tất cả các command và các thành phần khác giao tiếp với Server thông qua mạng IP. Chức năng chính của Server là tiếp nhận/tạo ra các batch job, thay đổi chỉnh sửa job, bảo vệ job trong các tình huống hư hỏng hệ thống, và đưa job vào thực thi. Một server quản lí một hay nhiều hàng đợi, hàng đợi bao gồm danh sách các job và tập hợp các thuộc tính của hàng đợi. Tuy các job được chứa trong hàng đợi nhưng thứ tự truy xuất của chúng là bất kì chứ không phải FIFO. Chỉ có server quản lí hàng đợi nào thì mới có quyền truy xuất vào hàng đợi đó. Các thành phần khác muốn lấy thông tin của hàng đợi phải thông qua server quản lí.

Trong PBS có hai loại hàng đợi: routing queue execution queue. Các job nằm trong execution queue đang được chờ đợi để thực thi, các job nằm trong routing queue đang được chờ để chuyển sang đích đến mới. Mỗi execution queue có danh sách các đích đến mà job có thể di chuyển đến. Đích đến này có thể là hàng đợi khác do cùng server quản lí hoặc hàng đợi thuộc server khác quản lí.
PBS Scheduler

PBS Scheduler điều khiển các nguyên tắc sử dụng tài nguyên trong PBS, quyết định những job nào được chạy và được chạy khi nào, ở đâu… Các nguyên tắc sử dụng tài nguyên do người quản trị của từng nơi quyết định vì vậy PBS cho phép mỗi nơi tự đặt ra nguyên tắc cho mình thông qua việc cấu hình Scheduler. Scheduler hoạt động bằng cách kết nối với các PBS Moms (PBS Executor) để lấy thông tin về tài nguyên kết hợp với thông tin về các job cần được thực thi lấy được ở Server nhằm đưa ra quyết định job nào cần được thực thi, ở đâu và khi nào.


PBS Executor

Một thành phần của PBS phải được cài đặt ở các node tính toán là PBS Executor hay còn gọi là Mom. Khi nhận được thông tin chương trình cần thực thi, Mom sẽ tạo ra session mới tương tự với login session của user. Ví dụ: nếu user login shell la csh thì Mom sẽ tạo một session mà .login được chạy như là .cshrc. Mom còn có chức năng chuyển kết quả về cho user nếu được Server muốn Mom làm như vậy.


4.3.Sự tương tác giữa các thành phần của PBS trong môi trường gồm nhiều host:


Sau đây là sơ đồ sự tương tác giữa các thành phần của PBS trong môi trường nhiều host:



  1. Một sự kiện kích hoạt Server bắt đầu một chu kì lập lịch và thực thi công việc mới.

  2. Server gửi tính hiệu đến Scheduler yêu cầu Scheduler lập lịch cho công việc.

  3. Scheduler yêu cầu các Mom đưa thông tin về tài nguyên tính toán.

  4. Các Mom gửi trả kết quả về cho Scheduler.

  5. Scheduler yêu cầu thông tin về job từ Server.

  6. Server gửi thông tin về các job cần đươc lập lịch cho Scheduler, Scheduler sẽ quyết định các job nào được chạy và chạy ở đâu, khi nào.

  7. Scheduler gửi yêu cầu cho các job nó đã lập lịch được chạy về Server.

  8. Server gửi các job cần được chạy đến các Mom tương ứng, tại các Mom job sẽ được thực thi.

4.4.Cài đặt và cấu hình PBS


Các bước sau hướng dẫn cài đặt Torque PBS 2.1.8 từ source package trên hệ thống gồm 2 host, 1 host sẽ đóng vai trò Server (host2) và Scheduler, 1 node sẽ là Mom (host3). Chú ý user cài PBS phải là user root.
Cài đặt và cấu hình PBS Server
[root@host2 tmp]$ tar -xzf torque-2.1.8.tar.gz

[root@host2 tmp]$ cd torque-2.1.8

[root@host2 torque-2.1.8]$ ./configure --with-default-server=host2 --with-scp
Với --with-default-server: thiết lập tên của PBS Server, --with-scp: sử dụng Scp để truyền file tốt hơn là dùng Rcp.

Mặc định chương trình sẽ cấu hình như sau:



  • Đường dẫn các file thực thi của PBS: /usr/local/bin, /usr/local/sbin

  • Đường dẫn các file cấu hình: $(TORQUECFG) = /var/spool/torque

  • Mặc định sẽ cài pbs_server, pbs_mom, pbs_sched

Sau cùng là install PBS:


[root@host2 torque-2.1.8]$ make

[root@host2 torque-2.1.8]$ make install


Sau khi quá trình cài đặt hoàn tất, “chạy torque.setup ” để cấu hình pbs_server, là tên user sẽ đóng vai trò admin hệ thống PBS.
[root@host2 torque-2.1.8]$ ./torque.setup root
Trong $(TORQUECFG)/server_priv/nodes thêm vào các hostname của các node thực thi (node chạy pbs_mom), nếu file này không tồn tại thì tạo nó:
[root@host2 torque]$ vi server_priv/nodes

host3
Từ giờ có thể chạy pbs_server để khởi động Server, qterm để tắt Server, pbsnodes để query trạng thái các node.


Cài đặt và cấu hình PBS Mom trên node tính toán
PBS Mom được cài trên host3. user cài đặt là user root
[root@host3 tmp]$ tar -xzf torque-2.1.8.tar.gz

[root@host3 tmp]$ cd torque-2.1.8

[root@host3 torque-2.1.8]$ ./configure --with-default-server=host2 --with-scp --disable-server
Vì chỉ cài pbs_mom ở host3 nên ta disable phần cài đặt server đi.
[root@host3 torque-2.1.8]$ make

[root@host3 torque-2.1.8]$ make install


Sau khi cài đặt thành công có thể chạy pbs_mom để tạo node tính toán ở host3.
Ở host2 chạy pbsnodes, để query trạng thái của các node tính toán, kết quả như sau là Server và Mom đã được cấu hình đúng.
[root@host2 server_priv]# pbsnodes

host3.bkgrid.hcmut.edu.vn

state = free

np = 1


ntype = cluster

status = opsys=linux,uname=Linux host3.bkgrid.hcmut.edu.vn 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686,sessions=? 15201,nsessions=? 15201,nusers=0,idletime=3604,totmem=779984kb,availmem=760892kb,physmem=255704kb,ncpus=1,loadave=0.00,netload=10999419,state=free,jobs=? 15201,rectime=1193613024


Ngoài ra có thể dùng các lệnh sau để test:
# shutdown server

> qterm -t quick


# start server

> pbs_server


# kiểm tra xem các queue đã được khởi tạo đúng hay không

> qstat -q


# xem các cấu hình hiện tại của hệ thống

> qmgr -c 'p s'


# kiểm tra xem các node đã được cấu hình và báo cáo trạng thái về đúng không

> pbsnodes -a


# submit thử 1 job đơn giản nhất (không được submit từ user root)

> echo "sleep 30" | qsub


# kiểm tra trạng thái job và hàng đợi

> qstat



4.5.Submit job dùng PBS



Mặc định trong phần này là hệ thống đã được config scp đúng, host2 và host3 đã có thể scp qua lại với nhau.

Xem cách config scp ở đây : http://www.clusterresources.com/torquedocs21/6.1scpsetup.shtml


Sau đây ta sẽ tạo một batch job và submit vào hệ thống PBS mới cài đặt. Tạo 1 file script tên là samplejob với nội dung sau:
# Ten cong viec

#PBS -N SampleJob

# Xac dinh loai shell

#PBS -S /bin/bash


# Stdout, stderr

#PBS -e test.err

#PBS -o test.out
echo Running on host

hostname


echo Time is

date


echo Directory is $PWD
Submit vào hệ thống

[mrd@host2 ~]# qsub samplejob

25.host2.bkgrid.hcmut.edu.vn

[mrd@host2 ~]$ cat test.out

Running on host

host3.bkgrid.hcmut.edu.vn

Time is

Wed Aug 29 03:50:32 ICT 2007



Directory is /home/mrd

eth0 Link encap:Ethernet HWaddr 00:0C:29:56:D0:77

inet addr:192.168.247.4 Bcast:192.168.247.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe56:d077/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:70998 errors:0 dropped:0 overruns:0 frame:0

TX packets:86103 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:5359179 (5.1 MiB) TX bytes:6861322 (6.5 MiB)

Interrupt:10 Base address:0x2000


lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:16 errors:0 dropped:0 overruns:0 frame:0

TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1248 (1.2 KiB) TX bytes:1248 (1.2 KiB)


Như vậy là job đã được submit vào queue và chạy trên host3, trả kết quả về cho host2.

5.Reference


[SGE1] Sun Grid Engine. http://gridengine.sunsource.net/project/gridengine/module_doc.html

[Sun1] Sun Microsystems. http://www.sun.com/gridware

[Collabnet] CollabNet. http://www.collabnet.com

[PBS2] PBS Admin Manual

[Torque1] Torque homepage. Website: http://www.clusterresources.com/torquedocs21/index.shtml

[PBS1] An Introduction to Portable Batch System PBS. Website

http://hpc.sissa.it/pbs/pbs.html

[DRMAA1] Distributed Resource Management Application Programming Interface. Website: http://www.drmaa.org



[Condor1] Condor project. http://www.cs.wisc.edu/condor

tải về 48.1 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương