Điện toán đám mây là một hệ thống, nơi mà các nguồn tài nguyên của một trungtâm dữ liệu được chia sẻ sử dụng công nghệ ảo hóa, mà còn cung cấp co giãn, theo yêucầu và dịch vụ ngay lập tứ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ
Tp.HCM tháng 06-2014
Trang 2MỤC LỤC 2
Trang 3DANH MỤC HÌNH VẼ 3
Chương 3 Song song hóa thuật toán Dijkstra trên nền tảng điện toán
đám mây
1.Giới thiệu Windows Azure Platform
2020
3 Triển khai Windows Azure trên Private cloud của VNPT Tiền Giang 22
4 Thực nghiệm thuật toán Dijkstra song song trên Private cloud của VNPT
Trang 4DANH MỤC HÌNH VẼ
Hình 1: Ghi nhớ kết quả tính được trên đồ thị ….……… 6
Hình 2: Sơ đồ định nghĩa điện toán đám mây ….……… 10
Hình 3: Mô hình dịch vụ điện toán đám mây ….……….… 12
Hình 4: Các mô hình triển khai điện toán đám mây ……….… 14
Hình 5: Kiến trúc Host-based……….……….17
Hình 6: Kiến trúc Hyperisor-based……….……….18
Hình 7: Tương tác khách hàng/doanh nghiệp với Windows Azure………20
Hình 8: Mô tả một khung ứng dụng song song trên nền Windows Azure……… 21
Hình 9: Mô hình ứng dụng song song kết nối từ UD cục bộ đến Worker Role… 22
Hình 10: Development Fabric cung cấp môi trường giả lập Windows Azure……23
Trang 5MỞ ĐẦU
Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong sốnhững bài toán tối ưu trên đồ thị được ứng dụng rộng rãi trong đời sống xã hội như lĩnhvực khoa học kỹ thuật, y tế, sinh vật, đặc biệt trong mạng giao thông vận tải (số đỉnh của
đồ thị lên đến hàng chục ngàn và phải xử lý trong một thời gian rất ngắn) Bài toán được đềxuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được gọi
là thuật toán Dijkstra Thuật toán có độ phức tạp là O(n2), với độ phức tạp tính toáncao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này với tínhchất tuần tự của giải thuật sẽ gặp phải khó khăn về thời gian thực hiện chương trình, tốc
độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn,… kích thước củabài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song song hóa giảithuật để tăng tốc độ và hiệu quả của giải thuật
Bên cạnh đó, sự phát triển như vũ bão của “điện toán đám mây” đã hỗ trợ rất tốt choviệc triển khai các phần mềm ứng dụng, bài toán có kích cỡ lớn Trong phạm vi của tiểuluận, em xin trình bày nội dung “Song song hóa thuật toán Dijkstra trên nền tảng điệntoán đám mây”.Bao gồm:
Chương 1: Thuật toán Dijkstra và song song hóa Dijkstra
Chương 2: Tổng quan về điện toán đám mây
Chương 3: Thực nghiệm song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây
Kết luận: Định hướng phát triển kết quả nghiên cứu.
Trang 6CHƯƠNG 1 THUẬT TOÁN DIJKSTRA VÀ SONG SONG HÓA
… kích thước của bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải songsong hóa giải thuật để tăng tốc độ và hiệu quả của giải thuật
Thuật toán đã giải quyết trên đồ thị với thời gian chạy khá lâu trên đồ thị có sốđỉnh lớn và dễ dàng tìm thấy nhiều ứng dụng trong các lĩnh vực khoa học kỹ thuật, y tế,sinh vật và đặc biệt trong mạng giao thông vận tải Tuy nhiên, có rất nhiều ứng dụng cần
xử lý nhanh trên đồ thị có số đỉnh lớn thì thuật toán tuần tự không đáp ứng được Vì vậyphải chia đồ thị cho nhiều bộ xử lý đồng thời tham gia tính toán, dẫn đến thuật toánsong song trên đa bộ xử lý, điều này thuật toán tuần tự chạy trên một bộ xử lý khôngthể thực hiện được
Hiện nay, mô hình xử lý song song đã và đang phát triển mạnh mẽ giải quyếtnhững vấn đề bế tắc mà mô hình xử lý tuần tự gặp phải như: vấn đề thời gian thực hiệnchương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ và xử lý dữ liệu với quy mô lớn
Vì vậy, “Song song hóa thuật toán Dijkstra tìm đường đi ngắn nhất từ một đỉnh
đến tất cả các đỉnh” trên đồ thị với m bộ xử lý nhằm khắc phục được các vấn đề tồn tại
đã nêu ở trên
2 Thuật toán tuần tự Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh
Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0, (i,j) E, đỉnh nguồn a
Đầu ra: Chiều dài đường đi ngắn nhất và đường đi ngắn nhất từ đỉnh a đến tất
cả các đỉnh trên đồ thị
+ Phương pháp:
Bước 1 Gán L(a):=0 Với mọi đỉnh x ≠ a gán L(x) = ∞ Đặt T:=V.
Bước 2 Chọn v T, v chưa xét sao cho L(v) có giá trị nhỏ nhất Đặt T:=T\{v},
đánh dấu đỉnh v đã xét
Bước 3 Nếu T=, kết thúc L(z), z V, z≠a là chiều dài đường đi ngắn nhất
từ a đến z Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất (L(z)
Trang 7không thay đổi, nếu L(z)= ∞ thì không tồn tại đường đi_(Not Path)).
Ngược lại sang bước 4
Bước 4 Với mỗi x T kề v gán L(x):= min{L(x), L(v)+w(v,x)} Nếu L(x) thayđổi thì ghi nhớ đỉnh v cạnh đỉnh x bằng mảng truoc[] (với truoc[] của đỉnh 1= 0) để saunày xây dựng đường đi ngắn nhất
Quay về bước 2
Độ phức tạp của thuật toán Dijkstra là O(n2)
Ví dụ: Cho đồ thị được biểu diễn như sau, sau khi thuật toán thực hiện xong thì kết
quả được ghi nhớ lên các nhãn đỉnh tương ứng
Mảng truoc[]=0 1 1 2 3 3 6 4 8 11 7 11 (Mảng ghi nhớ truoc [] dùng để tìmđường đi, với truoc[1]=0)
Mảng độ dài L = 0 7 5 13 15 15 17 18 38 39 24 29
Vậy kết quả từ đỉnh 1 đến tất cả các đỉnh là:
Trang 8lý song song được phát triển mạnh mẽ trên thế giới và cả ở Việt Nam Xử lý song songtốn ít thời gian hơn và thời gian là khác nhau tùy theo hệ thống có bao nhiêu bộ xử lý
và chỉ ra được trong tính toán song song thì thời gian thực hiện của bài toán phụ thuộcvào thời gian truyền dữ liệu trong hệ thống cộng với thời gian thực hiện tính toán Vìvậy, song song hóa thuật toán Dijkstra là rất cần thiết trong thực tiễn
3 Thuật toán song song Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh
Ý tưởng: Chia đồ thị ban đầu cho m bộ xử lý (P0, P1,…,Pm-1), cùng tính toán
đồng thời, mỗi bộ BXL đảm nhận n/m đỉnh của đồ thị (n là số đỉnh trên đồ thị, m là
số BXL ) và ma trận trọng số n/m cột n dòng (nếu n chia hết cho m) Ngược lại trườnghợp không chia hết thì ta sẽ thực hiện theo công thức (*) ở bước 1 trong thuật toánsong song Với m BXL, mỗi bộ xử lý sẽ thực hiện tính min L(x) với x là những đỉnh
kề với đỉnh mà nó đang nhận để xét Sau đó BXL trung tâm (P0) sẽ tìm min của cácL(x) trên các BXL để tiếp tục gửi đỉnh x lên các BXL để thực hiện
Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0 (i,j) E, đỉnh nguồn a, 1
- Gán L(a):=0 Với mọi đỉnh x ≠ a, x thuộc bộ xử lý chính gán L(x)= ∞
- Chia đều số đỉnh và ma trận trọng số để gửi cho m BXL
Cách chia đều như sau: Giả sử ta có n đỉnh và m bộ xử lý P0,P2,…,Pm-1
Gọi ni là số đỉnh của bộ xử lý Pi (i=0,…,m-1).
Trang 9- Nếu n chia hết cho m thì
Trang 10- Kiểm tra nếu Ti (i=0, ,m-1) = , thì bộ xử lý thứ i kết thúc, sang bước 6.
- Ngược lại, sang bước 5
Bước 5 m bộ xử lý thực hiện
for x Ti (i=0,…,m-1) kề với v
if L(x)>L(v)+w(v,x)
{ L(x) := L[v] + w(v,x)
Truoc[x]=v // ghi nhớ đỉnh v vào x}
quay lại bước 2
Bước 6 Bộ xử lý chính thực hiện.
Nếu tất cả m-1 bộ xử lý phụ kết thúc thì bộ xử lý chính thực hiện: nhận kết quả từcác bộ xử lý phụ và kết luận chiều dài đường đi ngắn nhất từ a đến tất cả các đỉnh vàđường đi ngắn nhất qua các đỉnh đã ghi nhớ Đỉnh nào có nhãn không thay đổi (bằng
∞) thì không tồn tại đường đi_(Not Path) Hệ thống kết thúc
Trang 11CHƯƠNG 2 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY
1 Định nghĩa
Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặtkinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng (platform) và cácdịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được phân phối theo nhu cầu chocác khách hàng bên ngoài thông qua Internet
Điện toán đám mây là một hệ thống, nơi mà các nguồn tài nguyên của một trungtâm dữ liệu được chia sẻ sử dụng công nghệ ảo hóa, mà còn cung cấp co giãn, theo yêucầu và dịch vụ ngay lập tức cho khách hàng vàchi phí sử dụng của khách hàng như hóađơn tiện ích, được mô tả sơ đồ sau:
Cloud Computing Data Center
Nguồn tài nguyên được chia sẻ sử dụng công nghệ ảo hóa
Co giãn
Theo yêu cầu
và dịch
vụ ngay lập tức
Chi phí sử dụng của khách hàng như hóa đơn tiện ích (Pay as you go)
Sự bùng nổ nhanh chóng của khoa học kỹ thuật, đặc biệt là ngành công nghiệp kỹthuật cao với sự ra mắt của mạng xã hội Facebook vào năm 2004, Amazon ra đời năm
Trang 122006, Apple cho ra đời IPhone năm 2007, Google Apps ra mắt năm 2008 và MicrosoftAzure vào năm 2009 đã đánh thức được tiềm năng của điện toán đám mây [4].Các giảipháp đám mây của HP vào năm 2010, giải pháp SmartCloud của IBM năm 2011, năm
2012 và 2013 thị trường Smart Phone của Samsung và Apple phát triển mạnh mẽ
3 Những đặc điểm của điện toán đám mây
Các đặc điểm của môi trường điện toán đám mây trình bày sau, có thể không là tất
cả, tham khảo từ nhiều nguồn tài liệu khác nhau,nhìn chung các loại dịch vụ được cungcấp trên điện toán đám mây có những đặc điểm như sau:
- Tính co giãn và khả năng mở rộng (Elasticity and scalability): Điện toán đám
mây cung cấp khả năng mở rộng và co giãn nguồn tài nguyên theo yêu cầu dịch vụ cụthể Ví dụ, người dùng có thể cần một số lượng lớn các tài nguyên máy chủ trong thờigian thực hiện một nhiệm vụ cụ thể Sau đó người dùng có thể giải phóng các tài nguyên
máy chủ sau khi hoàn thành nhiệm vụ.Đây là đặc điểm nổi bật của môi trường điện toán
đám mây, nó giúpcho nhà cung cấp sử dụng tài nguyên hiệu quả, tận dụng triệt để tài
nguyên dư thừa, phục vụ được nhiều khách hàng Đối với người sử dụng dịch vụ, khảnăng co giãn giúp họ giảm chi phí do chỉ trả phí cho những tài nguyên thực sự dùng
- Pay-per-use: Người dùng trả tiền cho dịch vụ điện toán đám mây chỉ khi họ sử
dụng chúng hoặc là trong thời gian ngắn (với thời gian sử dụngbộ nhớ xử lý) hoặc làtrong một thời gian dài hơn (dịch vụ lưu trữ)
- Theo yêu cầu (On demand): Người sử dụng gọi các dịch vụ điện toán đám mây
chỉ khi cần chúng, và những người sử dụng không phải là các bộ phận thường trực của cơ
sở hạ tầng CNTT - đây là một lợi thế quan trọng của người sử dụng để sử dụng điện toánđám mây,điều này trái ngược với các dịch vụ CNTT nội bộ truyền thống Với các dịch vụđiện toán đám mây không cần phải có nguồn tài nguyên chuyên dụng chờ đợi sẵn để được
sử dụng như là trường hợp với các dịch vụ nội bộ truyền thống
- Khả năng phục hồi (Resiliency): Khả năng phục hồi nhanh của một đám mây
cung cấp dịch vụcó thể hoàn toàn cô lập khi lỗi xảy ravới máy chủ hay các nguồn tàinguyên lưu trữ của người sử dụng Công việc này được thực hiện bằng cách di chuyển(migrate) đến một nguồn tài nguyên vật lý khác nhau trong điện toán đám mây mà không
có sự nhận biếthay can thiệp của người sử dụng
- Nhiều người thuê (Multi-tenancy): Các nhà cung cấp dịch vụ điện toán đám mây
lưu trữ các dịch vụ cho nhiều người sử dụng trong cùng một cơ sở hạ tầng – tài nguyêntrong hệ thống được chia sẻ cho nhiều người sử dụng
Trang 13- Tính sẵn sàng cao: Đặc điểm này liên quan đến xem xét sự cân bằng giữa việc
phục hồi hệ thống và chi phí Ở đây, các nhà cung cấp điện toán đám mây có thể dichuyển khối lượng công việc qua các máy chủ- di chuyển (migrage) cả hai trung tâm dữliệu nội bộ và các trung tâm dữ liệu (không cùng khu vực địa lý) Kỹ thuật này cần đượcxem xét tính hiệu quả và chi phí phải bỏ ra, ví dụ: di chuyển dữ liệu ở trung tâm dữ liệutrong nước, hay ra nước ngoài, băng thông đáp ứng khối lượng công việc, thời gian phụchồi và giá trị tài sản dữ liệu
4 Các mô hình dịch vụ
Cloud ClientsWeb browser, mobile app, thin client, terminal
emulator,
SaaSCRM, Email, virtual desktop, communication,
games,
PaaSExecution runtime, database, web server,
development tools,
IaaSVirtual machines, servers, storage, load
balancers, network,
Hình 3: Mô hình dịch vụ điện toán đám mây.
4.1 Cơ sở hạ tầng như một dịch vụ (IaaS)
IaaS chứa toàn bộ các tài nguyên hạ tầng trang thiết bị và phần cứng, các tài nguyên
ảo hóa (nếu có), phân phối các kết nối vật lý và logic cho các tài nguyên này, cung cấpmột tập hợp các APIs cho phép quản lý và tạo nên sự tương tác với hạ tầng của người sửdụng Nó là nền tảng của tất cả các dịch vụ đám mây, PaaS và SaaS được xây lần lượttrên nó, thừa hưởng mọi rủi ro an ninh của nó
Trong mô hình dịch vụ IaaS, các nhà cung cấp dịch vụ cung cấp máy tính thực hoặcảovà các nguồn tài nguyên khác Trình quản lí máy ảo (hypervisor) bên trong hệ thốngđám mây có thể cung cấpnhiều máy ảo và khả năng mở rộng hoặc thu hẹp các nguồntàinguyên theo yêu cầu khác nhau của khách hàng IaaS thường cung cấp các nguồn tàinguyên bổ sung như cácmáy ảo,lưu trữ, tường lửa, cân bằng tải,các địa chỉ IP, các mạngnội bộ ảo (VLAN), Đối với các kết nối mạng diện rộng, khách hàng có thể sử dụngthông qua Internet hoặc các carrier cloud (dành cho các mạng riêng ảo - VPN)
Trang 14Để triển khai các ứng dụng, người dùng điện toán đám mây cài đặt hệ điều hành vàphần mềm ứng dụng của họ trên cơ sở hạ tầng đám mây Trong mô hình này, người dùng
sẽ phải vá lỗi, bảo trì hệ thống và phần mềm ứng dụng của họ Các nhà cung cấp dịch vụđiện toán đám mây thường tính phí dịch vụ IaaS trên cơ sở điện toán thành phần: chi phíphản ánh số lượng nguồn tài nguyên được phân bổ và sử dụng
Những nhà cung cấp IaaS điển hình là: Amazon EC2, Google Compute Engine, HPCloud, Joyent, Linode, NaviSite, Rackspace, and ReadySpace Cloud Services
4.2 Nền tảng như một dịch vụ (PaaS)
Trong mô hình PaaS, những nhà cung cấp dịch vụ đám mây cung cấp nền tảng baogồm hệ điều hành, môi trường thực hiện ngôn ngữ lập trình, cơ sở dữ liệu và máy chủweb Nhà phát triển ứng dụng có thể phát triển và chạy các giải pháp phần mềm của họtrên một nền tảng điện toán đám mây mà không cần tốn chi phí và sự phức tạp của việcmua và quản lý phần cứng cơ bản Với PaaS, máy tính cơ bản và các nguồn tài nguyênlưu trữ tự động và thay đổi quy mô để phù hợp với nhu cầu ứng dụng, qua đó người dùngkhông phải tự phân bổ nguồn tài nguyên
Những nhà cung cấp PaaS điển hình là: AWS Elastic Beanstalk, Cloud Foundry,Heroku, Force.com, EngineYard, Mendix, OpenShift, Google App Engine, AppScale,Windows Azure Cloud Services, OrangeScape and Jelastic
4.3 Phần mềm như một dịch vụ (SaaS)
Trong mô hình SaaS, nhà cung cấp dịch vụ đám mây cài đặt và vận hành phần mềmứng dụng bên trong đám mây và những người sử dụng điện toán đám mây truy cập cácphần mềm từ các khách hàng của dịch vụ đám mây Những người sử dụng điện toán đámmây không quản lý cơ sở hạ tầng đám mây và nền tảng mà trên đó các ứng dụng đangchạy, việc này giúp loại bỏ việc cài đặt và chạy các ứng dụng trên máy tính của ngườidùng, đơn giản hóa việc bảo trì và hỗ trợ Điều làm cho một ứng dụng điện toán đám mâykhác biệt đối với các ứng dụng khác là khả năng mở rộng của nó Điều này có thể đạtđược bằng các tác vụ nhân bản (cloning) lên nhiều máy ảo,các load balancer phân phốicông việc trên các thiết lập của máy ảo,quá trình này hoàn toàn vô hình với người dùng,
họ chỉ nhìn thấy một điểm truy cập duy nhất Để đáp ứngsố lượng lớn người dùng, cácứng dụng đám mây có thể hoạt động đa nhiệm, có nghĩa là bất kỳ máy chủ nào cũng đềuphục vụ nhiều hơn một tổ chức sử dụng Việc tham chiếu tới các loại phần mềm ứng dụngđám mây đã trở nên phổ biến với một quy tắc đặt tên: desktop như một dịch vụ, quá trìnhkinh doanh như một dịch vụ, môi trường kiểm tra như một dịch vụ, giao tiếp như mộtdịch vụ
Trang 15Mô hình định giá cho các ứng dụng SaaS thường là một khoản phí cố định hàngtháng hoặc hàng năm cho mỗi người dùng, qua đó giá có khả năng thay đổi nếu ngườidùng thêm vào hoặc gỡ bỏ bất cứ thành phần nào.
Những nhà cung cấp SaaS điển hình là: Google Apps, Microsoft Office 365,Petrosoft, Onlive, GT Nexus, Marketo, Casengo, TradeCard, Salesforce andCallidusCloud
4.4 Mạng lưới như một dịch vụ (NaaS)
Một loại dịch vụ đám mây có khả năng cung cấp cho người dùng dịch vụ đám mây
sử dụng mạng, dịch vụ kết nối truyền tải và dịch vụ kết nối mạng giữa các đám mây.NaaS liên quan đến việc tối ưu hóa phân bổ nguồn tài nguyên bằng cách xem xét tàinguyên mạng và máy tính như một thể thống nhất
Dịch vụ NaaS truyền thống bao gồm mạng riêng ảo (VPN) mở rộng và linh hoạt,cũng như băng thông theo yêu cầu Cụ thể hóa thì khái niệm NaaS cũng bao gồm việccung cấp một dịch vụ mạng ảo từ các chủ sở hữu cơ sở hạ tầng mạng lưới cho một bênthứ ba
5 Các mô hình triển khai:
Hình 4: Các mô hình triển khai điện toán đámmây.
5.1 Đám mây công cộng (Public cloud)
Các ứng dụng, lưu trữ và các tài nguyên khác của đám mây công cộng được thựchiện cho người dùng bởi một nhà cung cấp dịch vụ sẵn có Những dịch vụ này miễn phíhoặc được cung cấp trên một mô hình trả theo sử dụng (pay-per-use)
Nhà cung cấp dịch vụnhư Amazon AWS, Microsoft và Google sở hữu và vận hành
cơ sở hạ tầng và cung cấp truy cập chỉ thông qua Internet (kết nối trực tiếp không được