XÂY DỰNG CÔNG CỤ ĐỆ TRÌNH CÔNG VIỆC CÓ NGỮ NGHĨA
CHO CONDOR
Building a Semantic-based Job Submission Tool for Condor
Lê Ngọc Sơn, Đinh Tuấn Việt, Tạ Tuấn Anh, Đỗ Đức Thành, Nguyễn Thanh Thủy
Tóm tắt
Sự phát triển của môi trường tính toán thông lượng cao đã góp phần giải quyết một số bài
toán cỡ lớn mà nếu không có khả năng tính toán của môi trường này thì gần như không
giải quyết được. Tuy nhiên, ở thời điểm hiện nay, phần mềm trung gian hỗ trợ môi trường
vẫn có những hạn chế làm cho người dùng khó khai thác sức mạnh của chúng. Một trong
số đó là việc đệ trình công việc. Quá trình so khớp yêu cầu của người dùng và khả năng
cung cấp của tài nguyên của hầu hết các bộ phần mềm trung gian hiện nay (kể cả Condor)
chủ yếu vẫn dựa trên cơ chế so khớp chính xác. Bài báo trình bày một cách tiếp cận theo
hướng ngữ nghĩa để làm mềm dẻo quá trình so khớp này bằng việc ứng dụng các công
nghệ của Web ngữ nghĩa. Ý tưởng này sau đó được ứng dụng để xây dựng bộ công cụ đệ
trình công việc mới bổ sung thêm tính năng cho quá trình đệ trình công việc trong Condor.
Từ khóa: Semantic Grid, Condor, Ontology
Abstract
The development of High Throughput Computing environments helps solve several large-
scale problems, which without these environments’ capability are hardly solved. At present,
there are however shortcomings in the middleware supporting these environments that
prevents users from effectively exploiting the environments’ power. One of these is job
submission. The matchmaking between user requirement and resource capability of almost
all middleware suites (including Condor) is exact matchmaking. This paper adopt a
semantic approach in order to make the submission phase more flexible. The idea is then
realized in a new job submission tool which adds new features to the submission process in
Condor.
Keywords: Semantic Grid, Condor, Ontology
1
1 ĐẶT VẤN ĐỀ
Ngày nay cùng với sự phát triển như vũ bão
của khoa học kỹ thuật, công nghệ, đã xuất
hiện ngày càng nhiều bài toán đòi hỏi sức
mạnh tính toán mà một máy tính riêng lẻ
không thể đảm nhiệm. Ngoài ra các bài toán
này đòi hỏi một khoảng thời gian lớn để
thực thi, thời gian tính toán có thể lên đến
hàng tháng, hàng năm. Xuất phát từ nhu cầu
đó, các kỹ thuật tính toán song song, tính
toán phân tán đã được đề xuất, và tính toán
thông lượng cao (High Throughput
Computing - HTC [1]) trở thành một công
nghệ hứa hẹn giải quyết vấn đề này.
Các hệ thống tính toán thông lượng cao
lớn mạnh ngày càng được xây dựng và phát
triển. Tuy nhiên tính đơn giản về ngữ nghĩa
của các hệ thống này đã dẫn đến một số hạn
chế. Điều này khiến cho người dùng phải
đương đầu với một lượng lớn thông tin
chuyên sâu về hệ thống cũng như xuất hiện
nhiều thông tin dư thừa so với mục đích sử
dụng. Tính chất đơn giản của các bộ đệ trình
công việc trong các hệ thống tính toán thông
lượng cao trước đây đã tạo rất nhiều khó
khăn trong việc tìm kiếm trích rút và bảo trì
thông tin. Do đó chúng chỉ hỗ trợ người
dùng ở một mức giới hạn nào đó trong việc
truy xuất và xử lý thông tin. Kết quả tất yếu
là những người dùng phải gánh trên vai
trách nhiệm không những truy cập và xử lý
thông tin mà còn rút trích và thông dịch mọi
thông tin.
Condor [2] là một phần mềm trung gian
có tác dụng hỗ trợ hoạt động của môi trường
tính toán thông lượng cao. Các cơ chế của
Condor hiện tại là đủ đáp ứng yêu cầu vận
hành của môi trường tính toán thông lượng
cao, tuy nhiên nó đòi hỏi người dùng phải có
hiểu biết về hệ thống và phải liệt kê chi tiết
các thông tin về tài nguyên trong đặc tả yêu
cầu. Vấn đề tìm kiếm hiện nay trong quá
trình xác định tài nguyên phù hợp của
Condor sử dụng công nghệ tìm kiếm theo từ
khóa (key word). Ngoài ra phương tiện tìm
kiếm này không hiểu được mối liên hệ giữa
các từ khóa với nhau. Nếu tích hợp được tri
thức cho các từ khóa này tạo thành ý nghĩa
và ngữ cảnh, thì việc tìm kiếm sẽ dựa trên
khái niệm (concept), chứ không phải theo từ
khóa.
Để hiểu rõ ý này, ta lấy ví dụ một nhóm
máy tính có cài hệ điều hành IRIX và Linux.
Theo cách thông thường, khi người dùng
muốn công việc được thực hiện trên các máy
tương thích với Unix, họ cần chỉ rõ hệ điều
hành hoặc là IRIX hoặc là Linux. Tuy nhiên
trong trường hợp người dùng không biết rõ
tài nguyên của hệ thống đang sử dụng là
Linux hoặc IRIX mà có nhu cầu thực thi
công việc theo với những tài nguyên tương
thích với 2 loại trên, người dùng đệ trình
công việc với yêu cầu tài nguyên là Unix thì
Condor sẽ không xác định được chính xác
tài nguyên do cơ chế tìm kiếm của Condor là
cơ chế tìm kiếm theo từ khóa. Kết quả là
công việc không được thực thi, nếu muốn
thực thi thì người dùng có thể phải đệ trình
công việc nhiều lần với mỗi lần là lựa chọn
một hệ điều hành thuộc họ Unix.
Việc sử dụng công nghệ Web ngữ nghĩa
trong tình huống này sẽ giúp che dấu được
đi tài nguyên của hệ thống, và giúp cho việc
tìm kiếm linh hoạt, dựa trên khái niệm. Khi
đó người dùng chỉ cần thiết yêu cầu thực thi
công việc trên hệ điều hành Unix, thành
phần suy diễn sẽ tìm ra các phần tử có mối
quan hệ tương thích như Linux, IRIX,
Solaris …
Cách tiếp cận này xét về tốc độ là chậm
hơn so với cách làm truyền thống, tuy nhiên
nó lại mềm dẻo và có khả năng mở rộng cao
hơn. Hơn nữa, trên thực tế, các ứng dụng
chạy trên môi trường tính toán thông lượng
cao phần lớn tốn rất nhiều thời gian để hoàn
tất. Do vậy thời gian suy diễn là tương đối
nhỏ so với tổng thời gian chạy. Chính vì
điều này, việc xây dựng thêm các thành
phần mô tả về ngữ nghĩa để trợ giúp việc đệ
trình công việc là chấp nhận được, ít nhất là
trong môi trường tính toán thông lượng cao.
Hệ thống được xây dựng trên ý tưởng
tiến hành thu thập thông tin và ngữ nghĩa
2
hóa về các thành phần của các máy trạm
trong hệ thống tính toán thông lượng cao. Ý
tưởng ngữ nghĩa hóa tài nguyên cho phép
chúng ta mở rộng các nguồn tài nguyên
thành một môi trường mới với tập các mối
quan hệ mới giữa các nguồn dữ liệu và tạo
ra mối liên hệ ngữ cảnh. Các thông tin yêu
cầu để đệ trình công việc cũng được phân
tích, xử lý theo hướng ngữ nghĩa hóa. Thành
phần suy diễn sẽ làm nhiệm vụ xác định tài
nguyên phù hợp với yêu cầu. Sau quá trình
lựa chọn tài nguyên phù hợp trên công việc
sẽ được đệ trình lên hệ thống để thực thi.
Nhằm giúp cho người đọc có được cái
nhìn từ tổng quát đến chi tiết cấu trúc của
bài báo bao gồm những phần sau: mục 2
trình bày các giải pháp trên thế giới có liên
quan; mục 3 trình bày kiến trúc tổng thể và
các thành phần của hệ thống; mục 4 đưa ra
các cài đặt thử nghiệm; mục 5 đánh giá kết
quả đạt được và đề xuất hướng phát triển
tiếp theo.
2 CÁC GIẢI PHÁP CÓ LIÊN QUAN
Đệ trình công việc gồm có đặc tả yêu cầu tài
nguyên, phát hiện tài nguyên và lựa chọn tài
nguyên. Các cơ chế này là cần thiết để đảm
bảo cho hoạt động của hệ thống. Tuy nhiên
phần lớn các phần mềm trung gian hiện nay,
có cả Condor đều dựa trên khớp chính xác
yêu cầu. Đó là các bên có liên quan thống
nhất về tên thuộc tính và dải giá trị tương
ứng của chúng. Cách làm này tương đối đơn
giản, tuy nhiên rất không mềm dẻo, đặc biệt
khi có một tài nguyên với cấu hình mới xuất
hiện trong hệ thống.
Hiện tại cũng đã có một số hướng ứng
dụng các công nghệ web ngữ nghĩa vào
trong các môi trường tính toán. Trong [3],
các tác giả đã đề xuất đưa thêm một tầng tri
thức vào kiến trúc của bộ môi giới Gridbus
[4], nhờ vậy bộ môi giới có thể phát hiện tài
nguyên nhờ cơ chế suy diễn. Thành phần
ngữ nghĩa trong tầng tri thức tạo mô tả ngữ
nghĩa cho tài nguyên nhờ vào một ontology
template. Thông tin về tài nguyên không
phải do tầng này tự phát hiện mà nhờ vào hệ
thống giám sát và phát hiện tài nguyên
(MDS) của Globus Toolkit.
Trong [5], các tác giả còn đề xuất kết
hợp việc chọn tài nguyên phần cứng và phần
mềm để trợ giúp cho việc lập lịch.
Trong [6], các tác giả đề xuất một dịch
vụ matchmaker dựa trên ontology hỗ trợ
việc phát hiện và mô tả tài nguyên động.
Trong đó, yêu cầu của người dùng được biểu
diễn bằng ontology của yêu cầu và nó phải
được dịch sang mô tả ontology.
Bài báo [7] giải quyết vấn đề mô tả tài
nguyên để môi giới tài nguyên cho một số
hệ phần mềm trung gian cho lưới, trong đó
có Unicore.
Trong [8], các tác giả đã thiết kế và xây
dựng thử phần mềm lựa chọn tài nguyên dựa
trên ontology khai thác ontology, các tri thức
nền tảng và các luật để giải quyết vấn đề
khớp tài nguyên trên lưới. Cơ sở dữ liệu suy
diễn mà họ sử dụng là TRIPLE/XSB.
Trong [9], các tác giả đưa ra một cơ chế
cho phép đặc tả các dịch vụ Web, đủ cho
một ứng dụng client xác định tất cả các dịch
vụ để thực hiện một công việc nào đó. Cơ
chế của họ sử dụng OWL
1
để mô tả các dịch
vụ Web. Ngoài ra, điều đáng chú ý nhất là
họ đã sử dụng các công nghệ cơ sở dữ liệu
quan hệ để lưu trữ các thể hiện của các lớp.
3 KIẾN TRÚC CỦA HỆ THỐNG
3.1 Kiến trúc phân tầng của hệ thống
Cũng giống như kiến trúc của một lưới
thông thường, hệ thống được xây dựng có
kiến trúc phân tầng. Tầng dưới cùng bao
gồm các dịch vụ cơ bản, tầng trên là các
dịch vụ mức cao được xây dựng từ dịch vụ
mức thấp. Sở dĩ ta lựa chọn kiến trúc phân
tầng bởi những ưu điểm sau của nó:
1
Web Ontology Language,
/>
3
• Cung cấp khả năng hoạt động tốt
trên môi trường không đồng nhất.
• Người sử dụng đầu cuối trở nên
trong suốt với dữ liệu của hệ thống.
• Người phát triển ứng dụng chỉ cần
biết các API là có thể lập trình dễ
dàng.
• Hỗ trợ một số lượng lớn các ứng
dụng trên lưới.
• Khả năng phát triển, nâng cấp dịch
vụ độc lập với xây dựng ứng dụng.
Trên cở sở đó, kiến trúc của hệ thống
bao gồm ba tầng: tầng nền, tầng tri thức và
tầng ứng dụng (Hình 1).
Hình 1. Kiến trúc và thành phần của hệ thống
Tầng nền (Fabric Layer)
Tầng nền có nhiệm vụ thu thập thông tin về
tài nguyên của hệ thống cũng như cung cấp
cơ chế lập lịch. Phụ thuộc vào loại tài
nguyên của hệ thống cần xây dựng mà
chúng ta có thể chọn các nhà cung cấp khác
nhau như Condor hay là PBS. Trong ứng
dụng này ta lựa chọn Condor vì khả năng
phù hợp với tính toán thông lượng cao.
Tầng tri thức (Knowledge Layer)
Tầng tri thức làm nhiệm vụ chuyển đổi
thông tin về tài nguyên thu thập được từ tầng
nền thành các đặc tả tri thức, sau đó lưu các
đặc tả này vào trong một cơ sở tri thức.
Ngoài ra tầng tri thức còn phụ trách việc
sinh ra những mô tả tài nguyên hợp với đặc
tả của Condor. Điều này đảm bảo rằng công
việc có thể thực hiện một cách chính xác.
Tầng ứng dụng (Application Layer)
Đây là tầng trên cùng trong kiến trúc của hệ
thống. Về nguyên tắc người dùng có thể
tương tác với hệ thống thông qua tầng ứng
dụng một cách trong suốt mà không nhận
biết được sự có mặt của các tầng khác. Tầng
ứng dụng bao gồm giao diện giữa người và
hệ thống bên dưới, nó nhận yêu cầu từ người
sử dụng và đưa đến tầng tri thức cũng như
hiện thị kết quả về trạng thái của công việc
cho người dùng.
Trong ứng dụng này, tầng ứng dụng bao
gồm một công cụ đệ trình công việc giúp ích
cho người dùng dễ dàng đệ trình công việc
với yêu cầu linh hoạt.
3.2 Các thành phần của hệ thống
Trên cơ sở của kiến trúc phân tầng, ta sẽ đi
chi tiết xem xét chức năng và nhiệm vụ các
thành phần của hệ thống.
Thành phần đệ trình công việc (Job
Submission Tool)
Thành phần này là giao diện bao gồm việc
lựa chọn các thông tin về tên tệp thực thi,
kiểu công việc, các tham số, các yêu cầu sẽ
được đưa cho tầng tri thức để phát hiện tài
nguyên phù hợp nhất.Nó cũng cho phép lựa
chọn các kiểu công việc có thể thực hiện.
Thành phần sinh câu truy vấn ngữ nghĩa
(Query Generator)
Vai trò của thành phần này là chuyển đổi
yêu cầu tài nguyên của người dùng thành
câu truy vấn tương ứng. Câu truy vấn trong
trường hợp này thực chất là một đặc tả lớp
của ontology.
Thành phần phát hiện tài nguyên
(Resource Discoverer)
4
Như ta đã biết Condor quản lý và thu thập
thông tin các loại tài nguyên thông qua bộ
thu thập Condor Collector, đồng thời cũng
cung cấp giao diện WebService cho phép
khai thác các thông tin này. Thành phần này
thu thập thông qua các dịch vụ trên tiếp nhận
thông tin dưới định dạng ClassAd
2
sau đó
chuyển chúng sang dạng Ontology. Một
trong những vấn đề thường xảy ra khi thu
thập dữ liệu là sự không đầy đủ cũng như
khác nhau về khuôn dạng nên chúng cần
phải được quy đổi và đưa ra một kiểu thống
nhất cho quá trình phân tích dựa theo các
thuộc tính của ClassAd. Quá trình sàng lọc
và loại bỏ những yếu tố dư thừa có thể rất
phức tạp nếu dữ liệu vào được lấy từ nhiều
nguồn không đồng nhất và phải tính đến quá
trình biến đổi theo định dạng chung. Tiếp
theo các thông tin này sẽ được lưu trữ ở
trong một cơ sở tri thức.
Trong môi trường tính toán thông lượng
cao, một loại tài nguyên có thể được thêm
vào hay ra môi trường ở bất kỳ thời điểm
nào. Cơ chế thu thập thông tin của Condor là
sau một khoảng thời gian nhất định sẽ cập
nhật lại thông tin của các các máy trạm. Vì
vậy một trong những nhiệm vụ của thành
phần này là tự động cập nhật lại kho tri thức.
Nó sẽ kiểm tra thường xuyên trạng thái của
tài nguyên, xác định được sự thay đổi và cập
nhật lại thông tin về tài nguyên.
Thành phần mô tả công việc (Job
Description Generator)
Các thông tin được lựa chọn sau từ thành
phần mô tả tài nguyên được chuyển sang
dạng ClassAd, cùng với thông tin đầu vào về
tên tệp, tham số làm thông tin đệ trình công
việc lên Condor Schedd.
4 CÀI ĐẶT CHƯƠNG TRÌNH
2
Classified Advertisements,
/>
4.1 Ontology mẫu
Ontology mẫu trong ứng dụng này mô tả các
tài nguyên có trong môi trường thông qua
các khái niệm và các thuộc tính. Chúng là
phương tiện để mô tả mọi tài nguyên có
trong môi trường.
Đối với cơ sở tri thức, ontology mẫu
đóng vai trò giống như vai trò của lược đồ
cơ sở dữ liệu đối với cơ sở dữ liệu. Ontology
mẫu có tác dụng hỗ trợ cập nhật tự động cơ
sở tri thức về tài nguyên.
Ontology mẫu được tạo và cập nhật bởi
con người, sử dụng Protégé do chưa có một
cơ chế tự động để cập nhật nó.
Khi đã có ontology mẫu, mỗi tài nguyên
được mô tả bằng một thể hiện và lưu ở trong
cơ sở tri thức.
4.2 Giải pháp lưu trữ cơ sở tri thức
Đặc tính của tài nguyên trong môi trường
tính toán thông lượng cao là số lượng lớn và
tính động cao. Số lượng tài nguyên trong
môi trường này có thể lên tới cỡ hàng nghìn.
Tính động của môi trường thể hiện ở chỗ các
tài nguyên này không cố định mà có thể vào
ra môi trường hay tính sẵn sàng thay đổi liên
tục. Chính vì điều này, ta cần phải có một
phương pháp quản lý cơ sở tri thức cho phù
hợp.
Cách lưu trữ thông thường nhất là lưu
toàn bộ cơ sở tri thức vào một tệp .owl sau
đó lợi dụng khả năng của máy suy diễn làm
việc trên tệp này. Cách này tuy đơn giản
nhưng hạn chế là bộ nhớ của máy suy diễn
là có hạn, và có khả năng không quản lý
được cơ sở tri thức lớn. Hơn nữa, khi có các
tình huống tương tranh hay truy cập đồng
thời, cách làm này có thể dẫn đến hỏng cơ
sở tri thức. Nói cách khác, giải pháp này chỉ
thích hợp cho số lượng cá thể nhỏ và không
thay đổi nhiều.
Ứng dụng này áp dụng cách tiếp cận
khác trong việc lưu trữ cơ sở tri thức, đó là
lưu các thể hiện vào trong cơ sở dữ liệu quan
hệ. Theo cách này, chúng ta vừa lợi dụng
được khả năng lưu trữ của cơ sở dữ liệu
5