Cấu hình bảo mật

Một phần của tài liệu LUẬN VĂN:GIẢI HỆ PHƢƠNG TRÌNH TUYẾN TÍNH KÍCH THƯỚC LỚN TRÊN NỀN TẢNG GRID COMPUTING pdf (Trang 52)

Chương 3 : MPICH và MPICH-G2

4.1. Triển khai Globus Toolkit

4.1.3.1. Cấu hình bảo mật

 b.ar.com

b.ar.com đóng vai trị làm server chứng thực, chúng ta cần cài đặt gói simpleCA đi kèm để quản lý các chứng chỉ điện tử.

Đặt đường dẫn đến các lệnh của globus

[globus@b~]$source $GLOBUS_LOCATION/etc/globus-user-env.sh Cài đặt simpleCA

[globus@b~]$GLOBUS_LOCATION/setup/globus/setup-simple-ca Q trình cài đặt thành cơng sẽ sinh ra 1 thư mục /home/.globus/simpleCA

Tiếp theo, để b.ar.com tin tưởng tuyệt đối vào simpleCA vừa được tạo cần thực hiện lệnh sau với quyền người dùng root

[root@b~]#$GLOBUS_LOCATION/setup/globus_simple_ca_ebb88ce5_s etup/setup-gsi -default

Sau khi lệnh trên được thực hiện ,thư mục /etc/grid-sercurity được tạo ra Sau đó cần tạo chứng chỉ điện tử cho host b.ar.com và người dùng thinh

48

Máy b.ar.com gửi yêu cầu được CA ký

[root@b~]#grid-cert-request -host `hostname` 1 file hostcert_request.pem được tạo ra nằm tại /etc/grid-sercurity

Với quyền người dùng globus, thực hiện ký lên hostcert_request.pem để tạo ra chứng chỉ điện tử cho host b

[globus@b~]grid-ca-sign –in /etc/grid-

sercurity/hostcert_request.pem –out bcert.pem

Copy file bcert.pem đè lên file hostcert.pem trong thư mục /etc/grid-sercurity Chứng chỉ điện tử cho host b đã được tạo

Tạo chứng chỉ điện tử cho người dùng thinh Chuyển sang quyền người dùng thinh

Gửi yêu cầu cần được CA ký

[thinh@b~]$grid-cert-request

1 file usercert_request.pem được tạo ra tại thư mục /home/thinh/.globus/

Với quyền người dùng globus, tạo chứng chỉ điện tử cho người dùng thinh bằng việc ký lên usercert_request.pem

[globus@b~]$grid-ca-sign –in

/home/thinh/.globus/usercert.pem –out thinhcert.pem

Người dùng thinh copy file thinhcert.pem đè lên file usercert.pem trong thư mục /home/thinh/.globus/

Quá trình tạo chứng chỉ điện tử cho người dùng thinh kết thúc. Lấy thông tin về người dùng thinh và đưa vào file grid-mapfile [thinh@b~]$ grid-cert-info –subject

Ta được thông tin sau :

/O=Grid/OU=GlobusTest/OU=simpleCA-b.ar.com/OU=ar.com/CN=Nguyen Thinh Tạo file /etc/grid-sercurity/grid-mapfile như sau :

49

"/O=Grid/OU=GlobusTest/OU=simpleCA-b.ar.com/OU=ar.com/CN=Nguyen Thinh" thinh

b1.ar.com, b2.ar.com, b4.ar.com

Copy file globus_simple_ca_xxxx_setup-0.20.tar.gz (xxxx là một mã hash được sinh ra bất kỳ tùy theo từng máy ) từ máy b.ar.com bằng lệnh scp sang các máy b1, b2 ,b3, b4. [globus@b1~]$scp

b.ar.com://home/globus/.globus/simpleCA/globus_simple_ca_xxx x_setup-0.20.tar.gz ./

Cài đặt gói vừa copy

[globus@b1~]$$GLOBUS_LOCATION/sbin/gpt-built globus_simple_ca_384920d7_setup-0.20.tar.gz

[globus@b1~]$$GLOBUS_LOCATION/sbin/gpt-postinstall

Chuyển sang người dùng root, để máy tính b1, b2, b3, b4 tin tưởng CA, cần thực hiện lệnh

[root@b1~]#$GLOBUS_LOCATION/setup/globus_simple_ca_ebb88ce5_ setup/setup-gsi -default

Tạo chứng chỉ điện tử cho host b1, b2, b4 tương tự như với host b .Với quyền root , sử dụng lệnh

[root@b1~]#grid-cert-request –host `hostname`

File hostcert_request.pem được tạo ra trong thư mục /etc/grid-sercurity/, chuyển file này sang máy b, trên máy b, dùng tài khoản globus ký lên và tạo chứng chỉ điện tử.

[globus@b~]$grid-ca-sign –in hostcert.pem –out hostbb1.pem Chuyển file hostb1.pem về máy b1, với tài khoản root trên b1, copy đè file này vào /etc/grid-sercurity/hostcert.pem.

Tạo chứng chỉ điện tử cho người dùng thinh trên b1 tương tự như làm với host bằng cách sử dụng lệnh grid-cert-request với tài khoản thinh trên b1 và grid-ca-sign với tài khoản globus trên b.

50

Các bước làm với máy b2, b4 cũng tương tự như các bước làm với máy b1. 4.1.3.2. Cấu hình dich vụ GridFTP

Cho cả 4 máy b, b1, b2, b4

Với quyền người dùng root tạo file /etc/xinetd.d/gridftp có nội dung

------------------------------------------------------------ service gsiftp { instances = 100 socket_type = stream wait = no user = root env += GLOBUS_LOCATION=/usr/local/globus-4.2.1 env += LD_LIBRARY_PATH=/usr/local/globus-4.2.1/lib server = /usr/local/globus- 4.2.1/sbin/globus-gridftp-server server_args = -i log_on_success += DURATION disable = no } ------------------------------------------------------------ Thêm dòng gsiftp 2811/tcp vào file /etc/services

[root@b~]#echo “gsiftp 2811/tcp” >> /etc/services

2 dịng lệnh trên cho phép dịch vụ /usr/local/globus-4.2.1/sbin/globus-gridftp-server ln được chạy với cổng 2188 ,giao thức TCP

51

Khởi động lại dịch vụ xinetd

[root@b~]#/etc/init.d/xinetd start [root@b~]#/etc/init.d/xinetd reload Kiểm tra xem dịch vụ đã chạy chưa ?

[root@b~]#netstat –an | grep 2118 Kiểm tra gridFTP hoạt động hay chưa

Với quyền người dùng thinh

[thinh@b~]grid-proxy-init -verify –debug Nếu không gặp báo lỗi , thử kiểm tra bằng việc copy sau :

[thinh@b~]globus-url-copy gsiftp://b.ar.com/etc/group /home/thinh/

Copy thành công tức là dịch vụ gridFTP đã hoạt động 4.1.3.3. Cấu hình gatekeeper

Cho cả 4 máy b, b1, b2, b4

Tạo file /etc/xinetd.d/globus-gatekeeper với nội dung sau :

------------------------------------------------------------ service gsigatekeeper { socket_type = stream protocol = tcp wait = no user = root env = LD_LIBRARY_PATH=/usr/local/4.2.1/lib server = /usr/local/globus-4.2.1/sbin/globus- gatekeeper

52

server_args = -conf /usr/local/globus- 4.2.1/etc/globus-gatekeeper.conf

disable = no

env = GLOBUS_TCP_PORT_RANGE=40000,50000 }

------------------------------------------------------------ Thêm dòng gsigatekeeper 2119/tcp vào file /etc/service

Khởi động lại dịch vụ xinetd.

Kiểm tra xem dịch vụ hoạt động chưa bằng lệnh netstat 4.1.3.4. Cấu hình WS GRAM

Cho cả 4 máy b, b1, b2, b4

Với quyền root ,dùng lệnh visudo thay đổi thơng tin như sau : Chọn comment tại dịng

# Defaults requiretty Thêm thông tin sau vào cuối file

globus ALL=(thinh) NOPASSWD: /usr/local/globus- 4.2.1/libexec/globus-gridmap-and-execute -g /etc/grid-

security/grid-mapfile /usr/local/globus-

4.2.1/libexec/globus-job-manager-script.pl *

globus ALL=(thinh) NOPASSWD: /usr/local/globus- 4.2.1/libexec/globus-gridmap-and-execute -g /etc/grid-

security/grid-mapfile /usr/local/globus-

4.2.1/libexec/globus-gram-local-proxy-tool *

Dòng lệnh trên thêm vào file /etc/sudoer cho phép người dùng globus có quyền thực thi các file nằm tại thư mục riêng của user thinh, đảm bảo cho người dùng thinh có thể thực thi các các ứng dụng

53

Như vậy chúng ta đã cấu hình các thành phần của Globus toolkit để dảm bảo cho người dùng thinh có quyền thực thi các file thơng qua cơ chế hoạt động của globus

4.2. Triển khai MPICH-G2

Thực hiện với cả 4 máy.

Với quyền người dùng root, tạo thư mục /opt/mpich Cấp quyền sở hữu thư mục cho người dùng globus:

[root@b~]#chown globus:globus /opt/mpich

Download mã nguồn chương trình mpich từ trang chủ của mpich http://www.mcs.anl.gov/research/projects/mpich2/ , mã nguồn có dạng mpich.tar.gz. Giải nén mã nguồn bằng công cụ tar

[globus@b~]$tar xzvf mpich.tar.gz

Thực hiện 3 bước cấu hình và kiểm tra mơi trường cài đặt, biên dịch và cài đặt Kiểm tra môi trường cài đặt :

[globus@b mpich-1.2.7-p1]$./configure –prefix=/opt/mpich – device=globus2:-flavor=gcc32dbg

Thư mục chỉ định cài đặt là thư mục /opt/mpich, có cài đặt kết nối tới bộ cơng cụ globus toolkit.

Tham số device=globus2 dùng để tại một công cụ kết nối mpich với globus toolkit

Bước này thành công, tạo ra 1 makefile cho phép công cụ make tự động biên dịch chương trình.

Biên dịch

[globus@b mpich-1.2.7-p1]$make Cài đặt

54

Chương 5 : Chạy và đánh giá hiệu năng của hệ thống Grid

Hệ thống Grid mini gồm 5 máy tính kết nối chúng ta vừa tạo được hoạt động như thế nào, có hiệu năng ra sao ? Trong chương này sẽ là phần thử nghiệm lần lượt 3 chương trình tính tốn song song khác nhau với kích thước bài tốn khác nhau để dánh giá hiệu năng của hệ thống Grid

Các chương trình được sử dụng bao gồm : - Chương trình tính tốn số PI

- Chương trình giải hệ phương trình tuyến tính (HPTTT) - Chương trình giải bài tốn quy hoạch tuyến tính (QHTT)

5.1. Giới thiệu về 3 bài toán sẽ đƣợc thử nghiệm 5.1.1. Tính tốn số PI

Hằng số Pi, được ký hiệu trong tốn học là π, nó được xác định bởi chu vi đường trịn chia cho đường kính của đường trịn đó. Mục tiêu của chương trình là dùng giải thuật để tính tốn số Pi với độ chính xác của phần thập phân cho trước.

Mã nguồn của chương trình được đi kèm phần mềm MPICH

5.1.2. Hệ phƣơng trình tuyến tính

Trong tốn học (cụ thể là trong đại số tuyến tính), một hệ phƣơng trình đại số tuyến tính hay đơn giản là hệ phương trình tuyến tính là một tập hợp n phương trình

tuyến tính với k biến số:

𝑎1,1𝑥1 + 𝑎1,2𝑥2 + ⋯ + 𝑎1,𝑘𝑥𝑘 = 𝑏1 𝑎2,1𝑥1 + 𝑎2,2𝑥2 + ⋯ + 𝑎2,𝑘𝑥𝑘 = 𝑏2 𝑎3,1𝑥1 + 𝑎3,2𝑥2 + ⋯ + 𝑎3,𝑘𝑥𝑘 = 𝑏3

𝑎𝑛,1𝑥1 + 𝑎𝑛,2𝑥2 + ⋯ + 𝑎𝑛,𝑘𝑥𝑘 = 𝑏𝑛

Hệ phương trình trên có thể được viết theo dạng phương trình ma trận: Ax=B

55 𝑎1,1 𝑎2,1 ⋮ 𝑎𝑛,1 𝑎1,2 𝑎2,2 ⋮ 𝑎𝑛,2 𝑎1,3 𝑎2,3 ⋮ 𝑎𝑛,3 … 𝑎1,𝑘−1 𝑎1,𝑘 … 𝑎2,𝑘−1 𝑎2,𝑘 ⋮ … 𝑎𝑛,𝑘−1 𝑎𝑛,𝑘 𝑥1 𝑥2 ⋮ 𝑥𝑘 = 𝑏1 𝑏2 ⋮ 𝑏𝑘

Mục tiêu của bài tốn là tìm nghiệm x của hệ phương trình trên. Các trường hợp xảy ra đối với nghiệm của bài tốn là:

- Hệ khơng có nghiệm (vơ nghiệm). - Hệ có duy nhất một nghiệm. - Hệ có vơ số nghiệm.

Kết quả chạy bài toán này sẽ được lấy ra tại thời điểm giải xong HPTTT đầu tiên có kích thước mlog x mlog khi giải bài toán QHTT. Lý do là trong giải thuật áp dụng với bài tốn QHTT có 1 bước phải giải HPTTT. Giải thuật áp dụng trong bài tốn QHTT sẽ được trình bày sau đây.

5.1.3. Bài tốn quy hoạch tuyến tính

Có thể tạm định nghĩa quy hoạch tuyến tính là lĩnh vực tốn học nghiên cứu các bài toán tối ưu mà hàm mục tiêu (vấn đề được quan tâm) và các ràng buộc (điều kiện của bài tốn) đều là hàm và các phương trình hoặc bất phương trình tuyến tính.

Thuật tốn được áp dụng ở đây là thuật toán Newton tổng quát dùng để giải bài toán quy hoạch tuyến tính dạng chuẩn sau đây :

  * min T , n: , 0n x X f c x X x Ax b x       (P)

Mục đích của bài tốn: với các aij, bi là biết trước, cần tìm xj (j=0,1….,n) sao cho f là nhỏ nhất.

Bài toán quy hoạch tuyến tính có tính ứng dụng rất cao trong cơng việc của các nhà tổ chức, thiết kế kĩ thuâ ̣t , quản lí điều hành cơng việc , ... và ngày càng được ứng dụng rô ̣ng rãi trong nhiều lĩnh vực khác nhau của cuô ̣c sống . Các lớp bài tốn quy hoạch tuyến tính thơng dụng hiện nay bao gồm bài toán lập kế hoạch, bài toán vận tải, bài tốn túi xách, bài tốn đóng gói, bài tốn lập lịch biểu... Ngồi ra, có rất nhiều bài tốn thực tế được mơ hình hóa dưới dạng bài tốn quy hoạch tuyến tính, ví dụ như các bài tốn tìm

56

cấu trúc tối ưu của chuỗi sinh học, các mơ hình mơi trường thật, các bài tốn cơ học hệ thống lớn, v.v.. Với khối lượng thơng tin ngày càng tăng, các kích thước của các bài tốn ứng dụng thực tế cũng ngày càng tăng, thế nên việc xử dụng các thuật tốn truyền thống khơng đem lại kết quả mong đợi. Chính vì lý do này một thuật tốn mới được đề ra cho phép giải các bài tốn quy hoạch tuyến tính kích thước lớn (~ 106 biến, ~103 ràng buộc). Thuật toán này đã được thực hiện trên nền tảng tính tốn song song sử dụng MPI. Thuật toán ban đầu sử dụng thuật tốn gradient liên hợp, sau đó lấy kết quả và sử dụng tiếp thuật tốn Newton tổng qt. Có 6 bước làm như sau :

1. Xác định dự đoán ban đầu x0 và p p0,  p0. 2. Tính gradient , ( , , ) ( T ) k k s s k S G p x b A x A p c p          

ở vòng lặp thứ k của phương pháp Newton để giải bài tốn tối đa hóa khơng ràng buộc . Ở đây s là số thứ tự vịng lặp ngồi.

3. Xác định ma trận Hessian tổng quát cho (18)

T

k k

H IAD A ở đây A là ma trận m n , ma trận chéo n n

k

D   được xác định như sau

1 if ( ) 0 ( ) 0 if ( ) 0 T i ii s k k T i k k x A p c D x A p c             Như vậy ma trận m m k H   .

4. Hướng tối đa hóa xấpxỉ pđược tìm như là nghiệm của hệ phương trình tuyến tính

.

k k

Hp GHk là ma trận dương, đối xứng và bán xác định nên chúng ta có thể dùng phương pháp gradient liên hợp có tiền điều kiện để giải phương trình tuyến tính (21). Phần chéo của ma trận Hk được dùng như tiền điều kiện (preconditioner) cho các bước gradient liên hợp.

57

5. Xác định pk1  pk k p, với klà kích thước bước được chọn theo quy tắc Armijo:

max ( , , )

k S pk p xs

   

Trên thực tế tham số k được đặt bằng 1 trong tất cả các thí nghiệm tính tốn. 6. Sai khi các vịng lặp trong hội tụ thì gán ppk1, tính xs1(xsA pT c), đặt

0

pp và lặp lại các bước 2-6.

5.2. Cách thức chạy 1 bài toán trên hệ thống Grid đƣợc xây dựng bởi 2 công cụ Globus Toolkit và MPICH

 Đăng nhập với người dùng của globus, cụ thể trong trường hợp này là người dùng thinh

 Tạo một proxy chứng thực cho người dùng Grid-proxy-init

 Biên dịch mã nguồn

MPICH cung cấp các công cụ mpicc để biên dịch các bài tốn được viết bằng ngơn ngữ C Ví dụ biên dịch một chương trình viết bằng ngơn ngữ C : program1.c

mpicc –o program program.c

 Tạo file Resource Specification Language (RSL) đặc tả cơng việc tính tốn cho chương trình cần chạy

RSL là một file scripts lưu trữ các thông tin chi tiết về mơi trường tính tốn cụ thể cho một chương trình : máy tính nào chạy chương trình, số lượng CPU được dùng để tính tốn, lượng RAM được sử dụng, thời than thực thi chương trình.

Cấu trúc cơ bản của 1 file RSL dùng để chạy 1 chương trình là như sau :

+ // Bắt đầu file là dấu +

58

( &(resourceManagerContact="b.ar.com") // Host được sử dụng để chạy chương trình

(count=2) // Số lần chạy

(label="subjob 0") // Nhãn của tiến trình phụ

(environment=(GLOBUS_DUROC_SUBJOB_INDEX 0) // Môi trường thực thi của subjob

(LD_LIBRARY_PATH /usr/local/globus-4.2.1/lib/)) // Đường dẫn đến thư viện GT (directory=/home/thinh/) // Thư mục chứa chương trình

(executable=/home/thinh/cpi) // Đường dẫn đến chương trình cần thực thi trên host ) ( &(resourceManagerContact="b1.ar.com") (count=2) (label="subjob 1") (environment=(GLOBUS_DUROC_SUBJOB_INDEX 1) (LD_LIBRARY_PATH /usr/local/globus-4.2.1/lib/)) (directory=/home/thinh/) (executable=/home/thinh/cpi) ) ……

 Sử dụng globusrun để chạy chương trình Globusrun –w –f file.rsl

Globurun sẽ chịu trách nhiệm đọc nội dung file RSL và thực thi chương trình với những đặc tả đã nêu, kết quả chạy được hiển thị trên màn hình máy tính

59

5.3. Kết quả chạy các chƣơng trình và đánh giá kết quả 5.3.1. Kết quả chạy chƣơng trình tính số PI

Số lƣợng máy 1 2 4

Thời gian 0.000083 0.003505 0.009917

Đánh giá : Đây là một bài tốn rất nhỏ nên khi chương trình được thực thi, thời gian trao đổi giữa các host với nhau làm cho việc chạy trên nhiều máy mất nhiều hơn rất nhiều so

Một phần của tài liệu LUẬN VĂN:GIẢI HỆ PHƢƠNG TRÌNH TUYẾN TÍNH KÍCH THƯỚC LỚN TRÊN NỀN TẢNG GRID COMPUTING pdf (Trang 52)

Tải bản đầy đủ (PDF)

(69 trang)