Mục Lục
Lời nói đầu
Phần 1 Tổng quan về tớnh toỏn song song
Giới thiệu về tớnh toỏn song song 5
Định nghĩa tính toán song song . 5
Nhu cầu về tớnh toỏn song song . 5
Sự phỏt triển của lập trỡnh song song ngày nay . 6
Phõn loại kiến trỳc mỏy tớnh song song 7
Cỏc giải thuật song song . 10
Mụ hỡnh lập trỡnh . 11
Kiến trỳc siờu mỏy tớnh của Beowulf . 12
Thư viện lập trỡnh . 13
Thư viện truyền thụng MPI . 13
Cấu trúc chương trỡnh . 13
Một số kiểu dữ liệu được dùng 14
Các hàm cơ bản . 14
Phần 2 Hệ quản lý tài nguyờn và phõn tải
Mục đích và nhiệm vụ của hệ quản lý tài nguyờn và phõn tải 19
Hệ thồng quản lý tài nguyờn và phõn tải . 21
Một số khái niêm cơ bản 21
Một số dặc trưng cơ bản 22
Cỏc phõn hệ trong PBS 23
3.1 Phõn hệ quản lý cụng việc PBS_Server . 23
3.2 Phõn hệ lập lịch PBS_Sheduler 24
3.3 Phõn hệ quản lý tài nguyờn và thực thi cụng việc PBS_Mom 26
Hoạt động của hệ thống 29
4.1 Giao tiếp giữa PBS_Server và PBS_Sheduler 30
4.2 Giao tiếp giữa PBS_Sheduler và PBS_Mom . 31
4.3 Giao tiếp giữa PBS_Server và PBS_Mom . 31
Sự đóng gói dữ liệu và truyền thông 32
5.1 Các đặc tả của chuẩn ASN.1 về định dạng dữ liệu . 33
5.2 Phương pháp mó hoỏ DIS . 38
Một số kết quả đó đạt được và định hướng phát triển
40
1. Một số kết quả trung tâm đó đạt được . 41
2. Định hướng phát triển . 41
Phần 3 Tỡm hiểu về chương trỡnh debugger
Debugger Interface . 43
Khỏi niờm Parallel Debugger . 43
Cách thức hoạt động của chương trỡnh debugger . 44
Giao diện 45
Debugger Output . 45
Hiệu ứng của sự song song trong quỏ trỡnh debugger
Tờn của cỏc tiến trỡnh và cỏc luồng . 46
Tập cỏc tiến trỡnh và cỏc luồng 47
Tập tờn . 48
High Performance Debugger Version 1 48
Giới thiệu về nhúm HPDF 48
High Performance Debugger Version 1 . 49
2.1 Giao diờn . 49
2.2 Khởi tạo 50
2.3 ActionPoints . 51
2.4 Đặc tả lệnh . 51
54 trang |
Chia sẻ: huong.duong | Lượt xem: 1241 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tìm hiểu về chương trình debugger, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
type dtype, int *count)
Hàm sau dựng để đồng bộ dữ liệu
int MPI_Probe (in source, int tag, MPI_Comm comm, MPI_Status *status)
Hàm này khụng trả về cho đến khi dữ liệu được đồng bộ.
Hàm sau dựng để chờ đợi cho cỏc thao tỏc Send hoặc Receive hoàn thành
int MPI_Wait( MPI_Request *request, MPI_Status *status )
Cỏc hàm NonBlocking
int MPI_Isend(void *buf, int count, MPI_Datatype dtype,int dest, int tag, MPI_Comm comm, MPI_Request *request)
int MPI_Irecv(void *buf, int count, MPI_Datatype dtype, int source, int tag, MPI_Comm comm, MPI_Request *request)
Nhúm hàm giao tiếp giữa nhiều tiến trỡnh
Thao tỏc Broadcast : là quảng bỏ một khối dữ liệu từ tiến trỡnh này sang tất cả cỏc tiến trỡnh khỏc
int MPI_Bcast(void *buf, int count,MPI_Datatype dtype,int root, MPI_Comm comm)
Thao tỏc Gather và Scatter : đõy là hai thao tỏc tập hợp dữ liệu từ nhiều tiến trỡnh về một tiến trỡnh và phõn tỏn dữ liệu từ một tiến trỡnh đến nhiều tiến trỡnh.
Thao tỏc Reduction : Thao tỏc này thực hiện 1 phộp tớnh trờn cỏc biến của cỏc tiến trỡnh trong nhúm và kết quả sẽ được truyền về 1 biến trờn vựng nhớ cục bộ của 1 tiến trỡnh. Thao tỏc này được thực hiện qua hàm sau:
int MPI_Reduce(void *sbuf, void *rbuf, int count, MPI_Datatype dtype,MPI_Op op, int root, MPI_Comm comm)
trong đú
sbuf : địa chỉ đầu của mảng cỏc phần tử trờn vựng nhớ cục bộ của cỏc tiến trỡnh trong nhúm, phộp tớnh op sẽ tỏc động lờn nhúm từng phần tử tương ứng của cỏc tiến trỡnh và kết quả được truyền về tiến trỡnh root
rbuf : địa chỉ đầu của mảng kết quả trờn vựng nhớ nhận dữ liệu của tiến trỡnh root
count : số lượng phần tử của mỗi mảng trờn vựng nhớ cục bộ của cỏc tiến trỡnh
dtype : kiểu dữ liệu của từng phần tử trong mảng.
op : phộp toỏn thực, hiện cú thể nhận 1 trong cỏc giỏ trị sau
MPI_MAX maximum
MPI_MIN minimum
MPI_SUM sum
MPI_PROD product
MPI_LAND logical and
MPI_BAND bitwise and
MPI_LOR logical or
MPI_BOR bitwise or
MPI_LXOR logical exclusive or
MPI_BXOR bitwise exclusive or
root : định danh của tiến trỡnh nhận kết quả
comm : xỏc định nhúm cỏc tiến trỡnh thực hiện.
Phần 2 Hệ quản lý tài nguyờn và phõn tải
Mục đớch và nhiệm vụ của hệ quản lý tài nguyờn và phõn tải
Ngày nay yờu cầu về việc tớnh toỏn song ngày cang trở nờn phổ biến và được ỏp dụng rộng dói trong cỏc bài toỏn cú yờu cầu số lượng phộp tớnh lớn, như vậy dẫn đến tỡnh trạng số nỳt tớnh toỏn sẽ rất lớn, số tài nguyờn lớn và mụi trường khụng đồng nhất do đú việc quản lý tài nguyờn và phõn tải tạo ra một mụi trường tớnh toỏn ổn định khụng chỉ do hệ điều hành đảm nhõn nữa mà cần tạo ra một mụi trường tớnh toỏn ổn định và hiệu quả. Để đỏp ứng yờu cầu này hệ quản lý tài nguyờn và phõn tải ra đời (Portable Batch System-PBS )
Hệ thống quản lý tài nguyờn và phõn tải cú hai nhiệm vụ chớnh là :
Quản lý tài nguyờn : đưa ra một “bức tranh” về toàn bộ hệ thống
Tài nguyờn tớnh toỏn : CPU, RAM …
Phõn tải : phõn bổ cụng việc trong cỏc điều kiện về tài nguyờn của hệ thống sao cho hiệu quả đạt được là tối ưu
Như đó núi ở trờn chỳng ta thấy rằng ngày nay hệ thống tớnh toỏn bú đó trở nờn khỏ phổ biến, cỏc thư viện và cỏc ngụn ngữ lập trỡnh song song tạo cho người lập trỡnh mụi trường lập trỡnh trờn hệ thống tớnh toỏn bú, cỏc phần mềm quản lý và phõn tải lại tạo ra một mụi trường tớnh toỏn ổn định và hiệu quả. Cỏc phần mềm này cú ý nghĩa càng lớn khi số lượng cỏc nỳt càng lớn và số lượng cỏc chương trỡnh thực hiện càng nhiều. Để hệ thống hoạt động tối ưu thỡ cỏc phần mầm phõn tải phải sử dụng cỏc phần mềm quản lý tài nguyờn và lập lịch. Phần mềm quản lý tài nguyờn cũn được người dựng sử dụng để quản lý hệ thống và đỏnh giỏ hiệu năng của hệ thống.
PBS là hệ thống quản lý tài nguyờn và phõn tải rất mạnh do NASA phỏt triển. Hệ thống này được sử dụng rất nhiều trong cỏc hệ thống tớnh toỏn hiệu năng cao. Chức năng chớnh của hệ thống là tiếp nhận bảo vệ cụng việc đú cho đến khi nú được thực hiện, thực hịờn cụng việc và trả lại kết quả cho người sử dụng.PBS cú thể được cấu hỡnh để chạy trờn một hệ thống đơn hoặc một hệ thống đa mỏy tớnh, chớnh sự linh hoạt này đó giỳp cho PBS cú thể thớch hợp với nhiều hệ thống tớnh toỏn khỏc nhau. PBS ngày nay đó trở thành một hệ phõn tải hang đầu trong cỏc hệ siờu mỏy tớnh và trở thành chuẩn cho cỏc hệ thống bú trờn Linux, PBS cung cấp rất nhiều lợi ớch cho cỏc hệ thống tớnh toỏn hiệu năng cao. Sau đõy là một số chức năng quan trọng của PBS :
Chia sẻ tài nguyờn cung cấp một cơ chế lập lịch cho cỏc cụng việc một cỏch trong suốt trờn bất kỳ một hệ thống PBS nào. Cụng việc được yờu cầu từ một mỏy client bất kỳ, cục bộ hay từ xa.
Giao diện dử dụng đồ hoạ giỳp người sử dụng chuyển cỏc yờu cầu tớnh toỏn ở chế độ lụ( Batch ) hay chế độ tương tỏc(interative), truy vấn cỏc cụng việc, hàng đợi cụng việc và tỡnh trạng hệ thống và theo doi dự tiến triển của cụng việc. Ngoài ra PBS cũng hỗ trợ giao diện dũng lệnh cho những người sử dụng chuyờn nghiệp.
Cơ chế bảo mật cho phộp người quản trị cú thể thiết lập hoặc huỷ bỏ việc truy cập đến PBS của một người nào đú, một nhúm người, một mỏy hay một mạng nào đú.
Nhật ký cho phộp ghi lại tất cả cỏc hoạt động trờn của hệ thống theo từng người, từng nhúm người hoặc từng mỏy.
Tự động chuyển tập là cơ chế sao chộp cỏc tệp cần thiết cho việc thực hiện một cụng việc trờn cỏc mỏy trạm tớnh toỏn. Cỏc tệp cần chuyển cú thể là cỏc tệp dữ liệu hoặc cỏc tệp thực thi.
Hỗ trợ cỏc cụng việc song song cho phộp hoạt động cựng với cỏc thư viện lập trỡnh song song như MPI,PVM va HPF. Cỏc chương trỡnh cú thể dựoc lập lịch để chạy trờn cỏc thống đa bộ xử lý hoặc đa mỏy tớnh.
Hỗ trợ tớnh toỏn lưới cung cấp hệ thống siờu tớnh toỏn và tớnh toỏn lưới, bao gồm việc hỗ trợ cho GGT( Globuls Grid Toolkit )
Giao diện lập trỡnh được PBS cung cấp cho phộp người lõp trỡnh cú thể tự viết lệnh mới cho PBS, tớch hợp PBS vào cỏc ứng dụng của họ hoặc cài đặt cỏc cơ chế lập trỡnh riờng.
Tự động phõn tải là cơ chế phõn tỉ cụng việc trờn tài nguyờn của hệ thống bú.
PBS gồm ba phõn hệ chớnh là:
PBS_SERVER : phõn hệ quả lý cụng việc.
PBS_Scheduler : phõn hệ lập lịch
PBS_Mom : phõn hệ quản lý tài nguyờn và thực thi
Vị trớ cỏc phõn hệ :
Hệ thống quản lý tài nguyờn và phõn tải PBS
Một số khỏi niệm cơ bản
Cụng việc : là một tập hợp cỏc thao tỏc (xử lý) nào đú được hệ thống xử lý.
Nỳt : đối với hệ thống PBS thỡ một nỳt là một đơn vị tớnh toỏn, một cụng việc cú thể được chạy trờn 1 nỳt hoặc trờn nhiều nỳt.
Chuyển tệp vào (Stage in) : Đõy là quỏ trinh chuyển 1 hoặc nhiều tệp vào cỏc nỳt thực thi để bắt đầu cụng việc
Chuyển tệp ra (Stage out) : Đõy là quỏ trỡnh chuyển 1 hoặc nhiều tệp ra khỏi cỏc nỳt sau khi cụng việc đó hoàn thành
Hàng đợi cụng việc : là nơi chứa cỏc chứa cỏc cụng việc đang chờ được thực hiện ở bờn trong server. Cú hai loại hàng đợi là routing và excution. Routing queue là hàng đợi dựng để dịch cỏc cụng việc đến một hàng đợi khỏc. Excution queue chứa cỏc cụng việc sẽ được thực hiện.
Một số đặc trưng cơ bản
PBS cú khỏ nhiều đặc trưng cần quan tõm đến khi tim hiểu, một số đặc trưng nổi bật được đề cập đến sau đõy:
Cỏc lệnh người dựng: đõy là cỏc lệnh cung cấp cho người dựng khả năng thao tỏc làm việc với hệ thống PBS, đặc biệt là cỏc thao tỏc đối với cụng việc như: đệ trỡnh, thay thế, xúa bỏ, yờu cầu thụng tin cụng việc v.v..
Cỏc lệnh thao tỏc: đõy là cỏc lệnh phục vụ cho việc thiết lập, khởi động và dừng hệ thống PBS
Cỏc lệnh quản trị hệ thống: đõy là cỏc lệnh phục vụ cho việc quản trị hệ thống PBS
Thư viờn API: cung cấp giao diện lập trỡnh phục vụ cho việc xõy dựng cỏc ứng dỳng client giao tiếp với hệ thống PBS.
Cụng việc tương tỏc (Interactive Job) : đõy là một cụng việc được thực hiờn một cỏch đặc biệt. Cụng việc thụng thường được đệ trỡnh cho PBS thụng qua một tệp kịch bản nào đú. Nhưng với cụng việc tương tỏc thỡ việc đệ trỡnh và thực hiện cụng việc cú thể tương tỏc được. Người sử dụng cú thể truy nhập đầu vào và đầu ra của cụng việc.
Kịch bản cụng việc trước và sau khi thực hiện : PBS cho phộp người sử dụng tạo cỏc kịch bản để thực hiện chỳng trước khi chạy cụng việc và sau khi cụng việc hoàn thành. Cỏc kịch bản này chủ yếu để khởi tạo trước khi tiến hành thực thi cụng việc và dọn dep sau khi cụng việc kết thỳc.
Chuyển tệp vào và chuyển tệp ra : Hệ thống PBS cung cấp khả năng chuyển tệp vào và chuyển tệp ra trước và sau khi cụng việc được thực hiện. Điều này làm tăng khả năng đỏp ứng của hệ thống trước cỏc yờu cầu của người dựng.
Cỏc phõn hệ trong hệ thống PBS
Hệ thống PBS gồm cú ba phõn hệ là PBS_Server, PBS _Sheduler và PBS_Mom.
Phõn hệ quản lý cụng việc PBS_Server
Phõn hệ quản lý cụng việc là thành phần trung tõm của PBS. Tất cả cỏc thành phần khỏc của PBS giao tiếp với phõn hệ quản lý cụng việc qua một địa chỉ IP duy nhất. Chức năng của phõn hệ quản lý cụng việc là cung cấp cỏc dịch vụ lụ, như là nhận/tạo ra cỏc cụng việc lụ (batch cụng việc), thay đổi cỏc cụng việc, bảo vệ cụng việc khi cú sự cố hệ thống, và thực hiện cụng việc (chuyển cụng việc cho phõn hệ thực thi cụng việc). Phõn hệ này quản lý một hoặc nhiều hàng đợi cụng việc (queue), một cụng việc phải thuộc vào một hàng đợi. Cỏc hàng đợi được server quản lý bởi một tập thuộc tớnh như kiểu, tài nguyờn, tờn,...
Phõn hệ Quản lý cụng việc tiếp nhận cỏc cụng việc được người sử dụng đệ trỡnh từ phớa client. Sau khi tiếp nhận cụng việc và đưa vào hàng đợi, Phõn hệ yờu cầu Phõn hệ Lập lịch thực hiện lập lịch. Quỏ trỡnh lập lịch được tiến hành. Tựy theo tỡnh trạng cụ thể của hệ thống mà cụng việc được đưa vào thực hiện ngay hay phải lưu trong hàng đợi. Nếu cụng việc được thực hiện, Phõn hệ Quản lý cụng việc sẽ gửi cụng việc cựng với yờu cầu thực thi xuống cho Phõn hệ Quản lý tài nguyờn và Thực thi cụng việc. Trong qua trỡnh cụng việc thực thi, Phõn hệ Quản lý cụng việc luụn lưu trữ thụng tin của cụng việc. Điều đú giỳp cho Phõn hệ cú thể điều quản được cụng việc một cỏch dễ dàng hơn.
Phõn hệ lập lịch PBS_Scheduler
Nếu như Phõn hệ Quản lý cụng việc là trỏi tim thỡ Phõn hệ Quản lý lập lịch thực hiện cụng việc được coi là bộ nóo của toàn bộ hệ thống PBS. Trong mụt phõn cụm tớnh toỏn, Phõn hệ này cú thể được cài đặt trờn một hoặc nhiều nỳt (nỳt quản trị) cũng dưới dạng một tiến trỡnh chạy ngầm và được thực thi bởi quyền root.
Nhiệm vụ của Phõn hệ Quản lý lập lịch thực hiện cụng việc chỉ là tiến hành lập lịch để đảm bảo một cụng việc khi được đệ trỡnh từ phớa người sử dụng, sẽ được phõn bố vào cỏc nỳt tớnh toỏn hoặc sẽ bị loại bỏ do khụng đỏp ứng được cỏc ràng buộc đó xỏc định trước.BatchServer đưa ra quyết định lập lịch khi cú cỏc yờu cầu sau xảy ra:
Cú nhiệm vụ mới cần chạy.
Cú nhiệm vụ kết thỳc tiến trỡnh của mỡnh.
Sau một khoảng thời gian nhất định do hệ thống định trước.
Thuộc tớnh Scheduling của PBS_Server được gỏn bằng true.
Cú nhiều nhiệm vụ cần chạy.
Khi BatchServer vừa bắt đầu khởi động và gửi lệnh thiết lập cấu hỡnh cho bộ lập lịch.
Sau khi nhận được yờu cầu lập lịch từ PBS_Server thỡ phõn hệ lập lịch sẽ tiến hành lấy cỏc thụng tin về mỏy chủ(Server), hàng đợi (queue), cỏc nhiệm vụ (job) để tỡm ra nhiệm vụ tốt nhất cần chạy, sau đú nú sẽ gửi yờu cầu cỏc thụng tin về tài nguyờn cho phõn hệ PBS_Mom tại mỗi nỳt, sau đú tỡm ra nỳt tốt nhất để chạy nhiệm vụ đú và thụng bỏo lại kết quả cho PBS_Server để PBS__Server chạy nhiệm vụ đú tại cỏc nỳt đó chọn.
Cỏc thụng tin cần thiết để lập lịch:
Cỏc thụng tin về mỏy chủ, hàng đợi,cụng việc
Cỏc thụng tin về tài nguyờn cho phõn hệ PBS_Mom tại mỗi nỳt
Hiện nay, cơ chế lập lịch được Phõn hệ Lập lich của hệ thống PBS sử dụng là cơ chế Vào trước Thực hiện trước.
Quỏ trỡnh Lập lịch được phõn loại thành lập lịch thực hiện cụng việc trờn một nỳt tớnh toỏn và lập lịch thực hiện cụng việc trờn nhiều nỳt tớnh toỏn
Lập lịch thực hiện trờn một nỳt tớnh toỏn
Hỡnh 3.2.1: Lập lịch thực hiện cụng việc trờn 1 nỳt
Sự kiện bỏo cho Server khởi tạo quỏ trỡnh lập lịch
Server gửi lệnh lập lịch đến Scheduler
Scheduler yờu cầu thụng tin tài nguyờn từ MOM
MOM trả lại thụng tin được yờu cầu
Scheduler yờu cầu thụng tin cụng việc
Server gửi thụng tin cụng việc đến cho Scheduler để Scheduler lập lịch
Scheduler gửi yờu cầu chạy đến Server
Server gửi cụng việc đến MOM để chạy
Lập lịch trờn nhiều nỳt tớnh toỏn
Hỡnh 3.2.2:Lập lịch thực hiện cụng việc trờn nhiều nỳt tớnh toỏn
Phõn hệ quản lý tài nguyờn và thực thi cụng việc PBS_Mom
Vai trũ của Phõn hệ này trong hệ thống PBS là hết sức quan trọng. Đõy chớnh là cỏc thành phần để thực thỡ cụng việc trờn cỏc nỳt tớnh toỏn cũng như thu thập cỏc thụng tin tài nguyờn của cỏc nỳt tớnh toỏn. Phõn hệ được cài đặt trờn từng nỳt tớnh toỏn của phõn cụm, cũng dưới dạng một tiến trỡnh ngầm và chạy với quyền root.
Nỳt tớnh toỏn
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
PBS_MOM
Nỳt tớnh toỏn
PBS_MOM
MẠNG LIấN KẾT
Hỡnh 3.3 : Phõn bố Phõn hệ Quản lý Tài nguyờn và Thực thi cụng việc trờn cỏc nỳt
Đõy là thành phần đảm nhiệm hai chức năng chớnh là quản lý tài nguyờn và thực hiện chạy cỏc Job. Do đú nú được chia thành hai thành phần sau
3.3.1 Thành phần quản lớ tài nguyờn(Resource Monitor-RM)
Thành phần quản lớ tài nguyờn hệ thống là thành phần bổ trợ cho thành phần lập lịch. Thành phần quản lớ tài nguyờn hệ thống cung cấp cho thành phần lập lịch nhưng thụng tin và tài nguyờn của hệ thống cục bộ. Thành phần quản lớ tài nguyờn hệ thống là một phần của phõn hệ pbs_mom. Nú lắng nghe đầu vào tại một socket nhất định (được định nghĩa là PBS_MOM_SERVICE_PORT = 15002) và đỏp ứng danh sỏch cỏc tờn tài nguyờn và giỏ trị tương ứng. Thành phần quản lớ tài nguyờn hệ thống cú thể đỏp ứng yờu cầu của rất nhiều tiến trỡnh nhưng socket được sử dụng chỉ cú tiến trỡnh chủ mới cú thể kết nối. Chỳ ý rằng pbs_mom khụng cũn giải quyết định vị của cỏc nỳt thực thi cỏc Job. Cỏc chức năng này được chuyển cho thành phần Pbs_Server như là một phần của toàn bộ đặc tớnh song song.
Cỏc thụng tin được RM quản lý:
Arch Hệ điều hành của host.n
Cput Thời gian cpu theo giõy.
Idletime Thời gian nghỉ của hệ thống theo giõy
Loadave Số cỏc tiến trỡnh đang chạy
Mem Số bộ nhớ đó dựng tớnh theo byte
Ncpus Số bộ vi xử lý trong mỏy trạm.
Nsessions Số phiờn làm việc đang thực hiện trong mỏy trạm
Nuers Số người dựng cú tiến trỡnh đang chạy trờn mỏy trạm
Pids Danh sỏch cac tiến trỡnh của cựng một phiờn làm việc.
Physmem Kớch thước bộ nhớ vật lý.
Sessions Số phiờn làm việc trong mỏy trạm
Size Kớch thước file hệ thống tớnh theo kb
Uname Thụng tin từ lệnh Uname trả về
Validuser Người dựng cú hợp phỏp khụng.
Walltime Thời gian tớnh theo đơn vị giõy mà một chương trỡnh hay
phiờn làm việc tồn tại trong hệ thống.
3.3.2 Thành phần thực hiện(Job Excutor-JE)
Mục đớch của JE là chạy cỏc nhiệm vụ (Job), theo dừi và điều khiển cỏc Job đú và bỏo cỏo lại cho PBS_Server. Mỗi một nỳt cú một JE Như vậy PBS_Server chịu trỏch nhiệm chung về Job được chạy, cũn JE chịu trỏch nhiệm cụ thể về Job đú, khởi tạo, giỏm sỏt, thu dọn sau khi Job hoàn thành. Một Job cú thể cú nhiều tiến trỡnh. JE giỏm sỏt tất cả cỏc tiến trỡnh trong nỳt tớnh toỏn. JE gắn liền với thành phần quản lớ tài nguyờn nhưng khỏc biệt hẳn về chức năng. JE hoạt động như một Task Manager đối với cỏc Job mà nú quản lý. Một PBS_Server sẽ làm việc với rất nhiều JE.
Hoạt động của hệ thống
Người sử dụng sẽ giao tiếp với Phõn hệ quản lý cụng việc với tư cỏch là mụt client đối với hệ thống PBS. Sau khi tiếp nhận được cụng việc, Phõn hệ Lập lịch thực hiện cụng việc sẽ được kớch hoạt để thực hiện việc lập lịch và phõn phối cụng việc vào cỏc nỳt tớnh toỏn theo cỏc giải thuật và cơ chế lập lịch cú sẵn. Đồng thời, cụng việc cũng được lưu trong cỏc hàng đợi (queue) của Phõn hệ quản lý cụng việc. Phõn hệ Lập lịch để cú thể lập lịch và phõn bổ cụng việc vào đỳng cỏc nỳt cần thiết sẽ yờu cầu Phõn hệ thu thập và quản lý tài nguyờn cung cấp cỏc thụng tin về tài nguyờn trờn từng nỳt tớnh toỏn. Dựa vào nhưng thụng tin đú, cựng với những thụng tin cú sẵn của cụng việc, Phõn hệ Lập lịch cú thể xỏc định được sự phõn bổ cụng việc trờn cỏc nỳt. Thụng tin đú sẽ đựợc chuyển xuống cho Phõn hệ Thu thập tài nguyờn và thực thi cụng việc để tiến hành thực hiện cụng việc đồng thời trong qua trỡnh thực hiện cụng việc, cỏc thụng tin cú liờn quan sẽ được cập nhật và lưu trữ trong Phõn hệ quản lý cụng việc. Khi cụng việc kết thỳc, kết quả sẽ được trả về cho người dựng ở phớa client. Quỏ trỡnh này sẽ được lặp đi lặp lại để đỏp ứng cho cỏc cụng việc tiếp theo được đệ trỡnh từ phớa người sử dụng.
Quỏ trỡnh này được diễn ra trong toàn bộ hệ thống, và cỏc phõn hệ đều trực tiếp tham gia vào.
Phõn hệ quản lý cụng việc
Phõn hệ lập lich
Phõn hệ quản lý tài nguyờn và thực thi cụng việc
Người sử dụng
Cụng
viờc và Yờu cầu
Kết quả & Thụng tin
Yờu cầu lập lịch &Thụng tin cụng việc
Yờu cầu thụng tin cụng việc &kết quả lập lịch
Yờu cầu thụng tin tài nguyờn
Thụng tin tài nguyờn
Cụng việc và Yờu cầu
Hỡnh 2.4:Hoạt động của hệ thống PBS
Giữa cỏc phõn hệ trong hệ thống PBS luụn cú sự giao tiếp, liờn lạc với nhau. Sự giao tiếp là cần thiết và quan trọng đặc biệt đối với nhiệm vụ quản trị hệ thống phõn cụm. Vỡ nếu khụng cú cỏc giao tiếp, liờn lạc giữa cỏc phõn hệ thỡ toàn bộ hệ thống sẽ trở nờn rời rạc và khụng cũn là một thể thống nhất nữa.
Giao tiếp giữa PBS_Server và PBS_Sheduler
Từ Phõn hệ quản lý cụng việc đến Phõn hệ lập lịch thực hiện là cỏc yờu cầu lập lịch và thụng tin về cụng việc cần được lập lịch
Từ Phõn hệ lập lịch đến Phõn hệ quản lý cụng việc là cỏc yờu cầu thụng tin về cụng việc và cỏc kết quả đó đỏp ứng sau khi lập lịch
Phõn hệ Quản lý cụng việc
Phõn hệ Lập lịch cụng việc
Yờu cầu lập lịch và thụng tin cụng việc
Yờu cầu thụng tin cụng việc và kết quả sau lập lịch
Hỡnh 2.4.1: Giao tiếp giữa Phõn hệ Quản lý cụng việc và Phõn hệ lập lịch
Giao tiếp giữa PBS_Sheduler và PBS_Mom
Từ Phõn hệ Lập lịch đến Phõn hệ quản lý tài nguyờn và thực thi cụng việc: yờu cầu thụng tin tài nguyờn do Phõn hệ quản lý tài nguyờn thu thập được.
Từ Phõn hệ Quản lý tài nguyờn và thực thi cụng việc đến Phõn hệ Lập lịch: thụng tin tài nguyờn đó thu thập được.
Phõn hệ Lập lịch cụng việc
Phõn hệ quản lý tài nguyờn và thực thi cụng việc
Yờu cầu thụng tin tài nguyờn
Thụng tin tài nguyờn cần thiết
Hỡnh 4.2: Giao tiếp giữa Phõn hệ Lập lịch và Phõn hệ Quản lý tài nguyờn và thực thi cụng việc
Giao tiếp giữa PBS_Server và PBS_Mom
Từ Phõn hệ Quản lý cụng việc tới Phõn hệ Quản lý tài nguyờn và thực thi cụng việc: cụng việc và yờu cầu thực thực cụng việc đú.
Phõn hệ Quản lý cụng việc
Phõn hệ Quản lý tài nguyờn và thực thi cụng việc
Cụng việc và yờu cầu thực thỡ
Hỡnh 4.3: Giao tiếp giữa Phõn hệ Quản lý cụng việc và Phõn hệ Quản lý tài nguyờn và thực thi cụng việc
Sự đúng gúi dữ liệu và truyền thụng
Hệ thống PBS thớch hợp với mụ hỡnh client-server, trong client đưa ra cỏc yờu cầu vàn server đỏp ứng. Ngoài ra trong mụi trường giao tiếp này cũng cầm cú sự giao tiếp giữa cỏc tiến trỡnh bờn trong và sự định dạng dữ liệu khi truyền trờn mạng.
Mặt khỏc hệ thống này cũng cần thiết phải cú một hệ thống gioa tiếp để khi cỏc cụng việc được giao cho cỏc server trỏnh xảy ra hiện tượng bị mất hay lặp lại cụng việc.
Thờm nữa hầu hết cỏc yờu cầu từ client đến server đều là cỏc yờu cầu đơn và việc xử lý với cỏc yờu cầu này là khỏ đơn giản. Tuy nhiờn cũng cú một vài yờu cầu phức tạp và gồm nhiều yờu cầu hợp lại hay là cú nhiều yờu cầu phụ đi kốm, mà trong bất kỳ trường hệ thống cũng cú thể bỏ qua cỏc yờu cầu phụ này. Vậy vấn đề đặt ra ở đõy là hệ thống kết nối phải được kết nối sao cho hệ thống cú thẻ bỏ qua một số yờu cầu khụng quan trọng mà vẫn đảm bảo khụng bị bỏ xút hay lặp lại cụng việc
Hệ thống sử dụng kiến trỳc mạng TCP/IP và socket để kết nối và trao đổi dữ liệu, cổng dịch vụ là cổng 15002. Một vài kiến trỳc mạng đơn giản khỏc cũng cú thể được sử dụng để thay thế như SNI, DNI.
PBS sử dụng kiểu mỏ hoỏ dữ liệu theo dạng xõu theo chuẩn ISO ASN.1 để truyền dữ liệu giữa cỏc phần ngoại trừ việc giao tiếp giữa PBS_Sheduler và RM, dữ lieu được mó hoỏ theo dạng DIS(Data Is String), ưu điểm là
Dễ dàng mó hoỏ
Mó hoỏ cả tờn trường nờn rất linh hoạtmdễ sửa đổi và dễ lập trỡnh
Bõy giờ chỳng ta sẽ cựng tỡm hiểu về chuẩn ASN.1 và DIS
Cỏc đặc tả của chuẩn ASN.1 về định dạng dữ liệu được truyền đi
Giao thức chuẩn ASN.1 được chia thành hai phõn hệs phõn biệt. Phõn hệ thứ nhất, Batch, chứa cỏc yờu cầu và đỏp ứng giữa clent và server, phõn hệ thứ hai, SSBatch, chứa cỏc message giữa cỏc server với nhau.
BATCH DEFINITIONS ::=
BEGIN
--
-- The Client to Server Requests and Replies
Network Protocol PBS ERS
--
BatchRequest ::= SEQUENCE {
request INTEGER { connect (0),
queuejob (1),
jobcredential (2),
jobscript (3),
rdytocommit (4),
commit (5),
deletejob (6),
holdjob (7),
locatejob (8),
manager (9),
messagejob (10),
modifyjob (11),
movejob (12),
releasejob (13),
rerunjob (14),
runjob (15),
selectjobs (16),
servershutdown (17),
signaljob (18),
statusjob (19),
statusqueue (20),
statusserver (21),
trackjob (22),
authenuser (49),
orderjob (50),
selstat (51),
registerdependent (52),
copyfiles (54),
delfiles (55),
jobobit (56),
mvjobfile (57)
},
user ISO646String,
credential [0] Credential OPTIONAL, -- no longer used
body ANY,
requestextend [1] OCTET STRING OPTIONAL
}
--
-- The server to client reply, one per request
--
BatchReply ::= SEQUENCE {
code INTEGER,
auxcode INTEGER,
bodyCHOICE {
none [0] NULL,
queue [1] JobIdentifier,
rdytocommit [2] JobIdentifier,
commit [3] JobIdentifier,
select [4] SelectReply,
stat [5] SET OF ObjStatus,
text [6] OCTET STRING, -- error msg
locate [7] IMPLICIT ISO646String -- server name
},
vendorextend OCTET STRING OPTIONAL
}
--
-- request body elements, one and only one per request
--
Connect ::= OBJECT IDENTIFIER
QueueJob ::= SEQUENCE {
destin [1] DestinationID,
jobid [2] JobIdentifier OPTIONAL, -- server-server only
attr [3] AttributeList
}
JobCredential ::= SEQUENCE {
type INTEGER,
data OCTET STRING
}
-- JobFile - chunks of the job script (and other) file passed as a string,
-- each chunk can be up to 8k octets in length
JobFile ::= SEQUENCE {
sequence [1] INTEGER, -- chunk sequence number
type [2] INTEGER, -- file type
jobid JobIdentifier OPTIONAL,
data OCTET STRING -- chunk of file
}
RdyToCommit ::= JobIdentifier
Commit ::= JobIdentifier
DeleteJob ::= Manage
HoldJob ::= Manage
LocateJob ::= JobIdentifier
Manage ::= SEQUENCE {
command INTEGER { create(0), delete(1), set(2), unset(3) },
objtype ObjType,
objname ISO646String,
attrib AttributeList
}
MessageJob ::= SEQUENCE {
Network Protocol PBS ERS
jobid JobIdentifier,
fileopt INTEGER { default(0), oflg(1), eflg(2) },
message ISO646String
}
ModifyJob ::= Manage
MoveJob ::= SEQUENCE {
jobid JobIdentifier,
destin DestinationID
}
ReleaseJob ::= Manage
RerunJob ::= JobIdentifier
RunJob ::= SEQUENCE {
jobid JobIdentifier,
location ISO646String OPTIONAL
}
SelectJobs ::= AttributeList
ServerShutdown ::= INTEGER { immediate(0), delay(1) }
SignalJob ::= SEQUENCE {
jobid JobIdentifier,
signal ISO646String
}
Status ::= SEQUENCE {
id ISO646String OPTIONAL, -- either job or destination id
attr AttributeList OPTIONAL
}
TrackJob ::= SEQUENCE {
hopcount INTEGER,
jobid JobIdentifier,
location DestinationID,
jobstate ISO646String
}
GetCredent ::= OCTET STRING
--
-- reply-body elements, zero or one per reply
--
SelectReply ::= SEQUENCE OF JobIdentifier
ObjStatus ::= SEQUENCE { -- for Queue and Server Status Reply
objtype ObjType,
objectname ISO646String,
attrib AttributeList,
text ISO646String OPTIONAL
}
--
-- Lower Level types
--
Credential ::= SEQUENCE {
credentialtype INTEGER {
credential-none (0), -- NULL
credential-text (1)
},
credential ANY DEFINED BY credenttype
}
DestinationID ::= ISO646String
JobIdentifier ::= ISO646String
ObjType ::= INTEGER {server(0), queue(1), job(2) }
-- JobIdentifier is in the form: "seq_number.server_name"
AttributeList ::= SET OF Attribute
-- Job attributes defined by the P1003.15 standard are:
-- account-name
-- checkpoint
-- error-path
-- execution-time
-- hold-type
-- job-name
-- job-state
-- join-paths
-- keep-files
-- mail-points
-- mail-users
-- output-path
-- priority
-- rerunable
-- resource-list
-- shellpath-list
-- security
-- user-list
-- variable-list
-- Additional PBS job attributes are:
-- ctime
-- cput-remain
-- current-loc
-- dependency
-- group
-- mtime
-- owner
-- submithost
Attribute ::= SEQUENCE {
name [1] ISO646String,
resource [2] ISO646String OPTIONAL, -- resource name
value [3] ISO646String, -- attribute or resource name
oper [4] INTEGER { set(0), unset(1), incr(2), decr(3),
eq(4), ne(5), ge(6), gt(7), le(8), lt(9),
dflt(16) }
}
END
SSBATCH DEFINITIONS ::=
BEGIN
--
-- Server to Server Requests
--
IMPORTS JobIdentifier , DestinationID , Attribute , AttributeList FROM BATCH ;
PullJob ::= SEQUENCE {
destin DestinationID,
attrib AttributeList
}
RegisterDependent ::= SEQUENCE {
owner OCTET STRING
Các file đính kèm theo tài liệu này:
- DAN074.doc