Tải bản đầy đủ (.docx) (24 trang)

Tìm hiểu mô hình Raspberry Pi Cluster

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (777.24 KB, 24 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
TIỂU LUẬN MÔN HỌC
TÍNH TOÁN LƯỚI
ĐỀ TÀI:
Tìm hiểu mô hình Raspberry Pi
Cluster
GVHD: PGS.TS. Nguyễn Phi Khứ
Người thực hiện: Phạm Vĩnh Thành
Mã số: CH1101035
Lớp: Cao học khóa 6 đợt 2
TP.HCM – 2013
Tiểu luận: Tính toán lưới
MỤC LỤC

SV: Phạm Vĩnh Thành Trang: 2
Tiểu luận: Tính toán lưới

Chúng em xin chân thành cảm ơn Thầy PGS.TS. Nguyễn Phi Khứ đã
truyền đạt những kiến thức quý báu từ những kinh nghiệm sống đến những vấn
đề khoa học mới nhất trong bộ môn Tính toán lưới.
Trong bài tiểu luận này, em xin trình bày nội dung em đã tìm hiểu về thiết
bị Raspberry Pi, thư việc Message Passing Interface (MPI) và xây dựng
Raspberry Pi Cluster để nghiên cứu và mô phỏng thuật toán tính số PI trên
Raspberry Pi Cluster.
Tuy đã có nhiều cố gắng nhưng do hạn chế về kiến thức, thời gian và
nguồn tài liệu tham khảo nên các vấn đề nghiên cứu trong tiểu luận chắc chắn
còn nhiều thiếu sót.
Chân thành cám ơn!
Phạm Vĩnh Thành
SV: Phạm Vĩnh Thành Trang: 3


Tiểu luận: Tính toán lưới
Phần 1: MỞ ĐẦU
I. Giới thiệu đề tài
1. Đặt vấn đề
Ngày nay, khoa học – kỹ thuật ngày càng phát triển nhanh và mạnh, các
bài toán được đặt ra để giải quyết ngày càng phức tạp, tốn nhiều thời gian và chi
phí, vượt quá khả năng của một máy tinh thông thường. Để giải quyết những bài
toán phức tạp này, các tổ chức đã đầu tư hệ thống siêu máy tính, hay còn được
gọi là SuperComputer.
Siêu máy tính có cấu hình phần cứng mạnh mẽ để nghiên cứu khoa học,
giải quyết các bài toán phức tạp nhanh hơn nhiều so với sử dụng máy để bàn,
máy tính xách tay, nhưng chi phí đầu tư của siêu máy tính rất cao, đồng thời, chi
phí vận hành, bảo trì cũng rất cao.
Tại các trường đại học, việc nghiên cứu khoa học luôn là tiêu chí hàng
đầu và liên tục. Ngân sách đầu tư và chi phí vận hành cho hệ thống siêu máy tính
để phục vụ cho việc nghiên cứu hạn hẹp, đồng thời, nếu hệ thống siêu máy tính
bị trục trặc, việc bảo trì cũng mất rất nhiều thời gian và chi phí.
Như vậy, cần phải có giải pháp xây dựng một mô hình Siêu máy tính
với chi phí đầu tư ban đầu, chi phí vận hành và chi phí bảo trì thấp để phục vụ
cho việc nghiên cứu được diễn ra liên tục và có thể được dùng để dự phòng cho
hệ thống Siêu máy tính hiện tại.
Các máy tính MiniPC ngày càng nhỏ gọn, năng lượng tiêu thụ thấp, giá
thành thấp và đáp ứng đủ nhu cầu sử dụng thông thường. Thậm chí minipc còn
được trang bị những tính năng cao cấp hơn cả máy tính để bàn, máy tính xách
tay. Vì vậy, minipc dần được thay thế dần máy tính để bàn, máy tính xách tay để
tiết kiệm điện năng, chi phí đầu tư, vận hàng, bảo trì.
Vì những vấn đề trên, em quyết định tìm hiểu mô hình Raspberry Pi
(một loại minipc) Cluster (RPICluster) để giành cho việc nghiên cứu, mô phỏng
SV: Phạm Vĩnh Thành Trang: 4
Tiểu luận: Tính toán lưới

các ứng dụng tính toán lưới. Mô hình RPICluster đang được sử dụng rộng rãi tại
trường Đại học như University of Southampton, Boise State University và một
vài trung tâm nghiên cứu như NVidian.
2. Giới thiệu đề tài
Với những vấn đề nêu ra ở trên, đề tài “Tìm hiểu mô hình Raspberry Pi
Cluster” được em thực hiện với mục đích hỗ trợ cho việc xây dựng mô hình LAB
chi phí đầu tư thấp, tiết kiệm điện năng, chi phí bảo trì thấp giành cho việc
nghiên cứu, mô phỏng tính toán lưới trên mô hình thực tế gồm nhiều Nút (node).
SV: Phạm Vĩnh Thành Trang: 5
Tiểu luận: Tính toán lưới
Với chi phí dưới 2000 USD, hệ thống RPICluster có thể lên tới 33 node
và năng lượng tiêu thụ cho toàn hệ thống vào khoảng 167 Watt.
II. Mục tiêu của đề tài
Tóm tắt mục tiêu của đề tài:
- Tìm hiểu một số Supercomputer hàng đầu trong website
top500.org.
- Tìm hiểu thiết bị Raspberry Pi: cài đặt hệ điều hành, vận hành.
- Tìm hiểu thư viện MPI (Message Passing Interface).
- Tìm hiểu mô hình RPiCluster của trường Đại học Boise State và
Đại học Southampton.
SV: Phạm Vĩnh Thành Trang: 6
Tiểu luận: Tính toán lưới
Phần 2: CƠ SỞ LÝ THUYẾT
I. Tìm hiểu thiết bị Raspberry Pi
Raspberry Pi – Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ
Raspberry Pi vào cách đây 1,5 năm, tháng 12/2011. Chiếc máy tính này chỉ có
kích cỡ bằng một chiếc thẻ tín dụng với đầy đủ các kết nối và tuỳ dung lượng
RAM mà người mua lựa chọn. Trong một cuộc phỏng vấn mới đây, người đứng
đầu của quỹ này là David Braben cho biết mặc dù có giá rẻ và kích cỡ nhỏ gọn
nhưng máy tính của họ hoàn toàn có thể chơi những game như Quake III Arena

hay chơi video độ phân giải Full-HD.
Trong thời gian đầu, công ty sẽ chỉ cung cấp 10 ngàn máy cho các lập
trình viên, bắt đầu từ tháng tới, hầu hết là tại Anh quốc. Raspberry Pi muốn các
lập trình viên viết phần mềm, game cho máy cũng như “port”
1
từ các nền tảng
khác sang, để sau đó có thể sử dụng cho mục đích giáo dục. Về cấu hình, máy
tính của Raspberry Pi sẽ sử dụng BXL 700Mhz, RAM 128MB hoặc 256MB, hỗ
trợ thẻ SD và ngõ ra HDMI.
Hiện nay Raspberry Pi có 2 phiên bản được bán, trong đó phiên bản B
là phiên bản được nhiều người mua nhất vì hỗ trợ đầy đủ các kết nối
1 Port: chuyển đổi phần mềm từ nền tảng hệ điều hành, phần cứng khác sang
SV: Phạm Vĩnh Thành Trang: 7
Tiểu luận: Tính toán lưới
- Broadcom BCM2835 700MHz ARM1176JZFS processor with
FPU and Videocore 4 GPU
- GPU provides Open GL ES 2.0, hardware-accelerated OpenVG,
and 1080p30 H.264 high-profile decode
- GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with
texture filtering and DMA infrastructure
- 512MB RAM
- Boots from SD card, running a version of Linux
- 10/100 BaseT Ethernet socket
Điều đặc biệt RPi rất nhỏ gọn và tiêu tốn điện cực thấp. Bạn có thể
chạy RPs chỉ với 2 viên pin tiểu hoặc một nguồn điện 5V. Đây có lẽ là một giải
pháp hợp lý cho nhu cầu online 24/24 mà không muốn tiêu tốn quá nhiều điện
năng. (Raspberrypi.vn, 12/2012, />thieu-mini-pc-raspberry-pi-24.pi).
Raspberry Pi chạy hệ điều hành (HĐH) dựa trên nhân Linux. Raspbian
là một phiên bản dựa trên Debian đã được tối ưu cho phần cứng của Pi là HĐH
được Quỹ Raspberry Pi đề nghị sử dụng.

Dưới đây là các HĐH đã được Rasp Pi hỗ trợ hoặc đang được cộng
đồng thử nghiệm:
- AROS
- Android 4.0
- Arch Linux ARM
- Debian Squeezy
- Firefox OS
- Gentoo Linux
- Google Chromium OS
- PiBang Linux
- Raspberry Pi Fedora Remix
- Raspbian
- Slackware ARM
- QtonPi
- Open WebOS
- Plan 9 (Bell Labs)
- RISC OS
- FreeBSD
SV: Phạm Vĩnh Thành Trang: 8
Tiểu luận: Tính toán lưới
- NetBSD
- Squeezy ARM Puppy
- OpenELEC
- XBMC
- RaspBMC
(Embed.vn, 01/2013, />may-tinh-ti-hon.html)
II. Tìm hiểu thư viện MPI
MPI viết tắt của Message Passing Interface, một dạng giao thức kết nối
của máy tính, là một hệ thống truyền thông điệp được chuẩn hóa và portable
2

được thiết kế bởi một nhóm nhà nghiên cứu từ các học viện và ngành công
nghiệp để hoạt động trên nhiều loại máy tính song song. Tập MPI thi hành bao
gồm một thư viện các thủ tục sao cho có thể gọi được từ các chương trình
Fortran, C, C++ hay Ada. Lợi thế của MPI so với các thư viện cũ là nó vừa thuận
tiện (vì MPI thực thi cho hầu hết các kiến trúc bộ nhớ phân phối) vừa nhanh (vì
mỗi thủ tục được tối ưu hóa cho phần cứng mà nó đang chạy).
MPI không phải là trình biên dịch, và cũng không phải là một sản
phẩm, nó là một đặc tả chuẩn cho thư viện chuyển thông điệp. Nó được sử dụng
cho các hệ thống PC Cluster, mạng hỗn tạp, được dùng để phát triển thư viện
phần mềm song song, truy xuất phần cứng song song. (Giới thiệu PC Cluster, Đỗ
Thanh Nghị, cit.ctu.edu.vn)
Mục tiêu của giao diện MPI chỉ đơn giản là phát triển một chuẩn được
sử dụng rộng rãi để viết các chương trình gửi thông điệp.
- Thiết kế một giao diện lập trình ứng dụng (không nhất thiết phải
cho các trình biên dịch hoặc một thư viện thực hiện hệ thống).
- Cho phép giao tiếp hiệu quả: Tránh sao chép từ bộ nhớ này đến
bộ nhớ khác, cho phép chồng chéo tính toán và thông tin liên lạc,
và giảm tải cho giao tiếp xử lý đồng thời, nếu có.
2 portable: có thể được chuyển đổi từ một dạng hệ thống máy tính này sang hệ thống khác.
SV: Phạm Vĩnh Thành Trang: 9
Tiểu luận: Tính toán lưới
- Cho phép triển khai thực trong những môi trường không đồng
nhất.
- Cho phép kết hợp C và Fortran thuận lợi.
- Đưa ra giao diện truyền thông tin cậy: người dùng không cần
phải sợ việc rớt kết nối. Kết nối bị rớt này sẽ được thực hiện bởi
một hệ thống phụ khác.
- Định nghĩa giao diện có thể được thực hiện trên nền tảng của
nhiều nhà cung cấp mà không có sự thay đổi đáng kể trong giao
tiếp cơ bản và phần mềm hệ thống.

- Ngữ nghĩa của giao diện nên là một ngôn ngữ độc lập.
- Giao diện nên được thiết kế cho phép các tiểu trình an toàn.
(MPI 3.0, MPI Forum, 2012, www.mpi-forum.org)
SV: Phạm Vĩnh Thành Trang: 10
Tiểu luận: Tính toán lưới
PHẦN 3: TÌM HIỂU MÔ HÌNH RASPBERRY PI CLUSTER
I. Mô hình RPiCluster của ĐH Southampton
Nhóm nghiên cứu, dẫn đầu bởi Giáo sư Simon Cox, bao gồm Richard
Boardman, Andy Everett, Steven Johnston, Gereon Khai Bình, Neil O'Brien,
Mark Scott và Oz Parchment, cùng với con trai James Cox của giáo sư Cox (6
tuổi) đã cung cấp hỗ trợ chuyên gia về sắp xếp Lego và thử nghiệm hệ thống.
Giáo sư Cox nhận xét: "Ngay khi chúng tôi có thể đủ nguồn máy tính
Raspberry Pi chúng tôi muốn xem nếu nó đã có thể liên kết chúng lại với nhau
thành một siêu máy tính. Chúng ta cài đặt và xây dựng tất cả các phần mềm cần
thiết trên Pi bắt đầu từ một hình ảnh hệ thống Debian Wheezy tiêu chuẩn và
chúng tôi đã xuất bản một hướng dẫn để bạn có thể xây dựng siêu máy tính của
riêng bạn."
Các kệ Rack được xây dựng bằng Lego với một thiết kế được phát triển
bởi Simon và James, người cũng đã được thử nghiệm Raspberry Pi bằng cách lập
trình nó sử dụng chương trình máy tính miễn phí phần mềm Python và Scratch
trong mùa hè 2012. Máy, có tên là "Iridis-Pi" sau khi Iridis siêu máy tính của
trường Đại học, chạy ra một ổ cắm điện 13 Amp duy nhất và sử dụng MPI để
giao tiếp giữa các nút sử dụng Ethernet. Chi phí toàn bộ hệ thống dưới £ 2,500
(không bao gồm chuyển mạch) và có tổng cộng 64 bộ vi xử lý và 1TB bộ nhớ
(thẻ SD 16Gb cho mỗi Raspberry Pi). Giáo sư Cox sử dụng các plug-in miễn phí
'Python cụ cho Visual Studio để phát triển mã cho Raspberry Pi.
Giáo sư Cox cho biết thêm: "Các thử nghiệm đầu tiên chúng tôi chạy -
và rõ ràng rằng chúng tôi tính toán Pi trên Raspberry Pi sử dụng MPI, đó là một
thử nghiệm đầu tiên nổi tiếng cho bất kỳ siêu máy tính mới."
"Nhóm nghiên cứu muốn xem hệ thống chi phí thấp này như là một

điểm khởi đầu để truyền cảm hứng và giúp sinh viên áp dụng tính toán và xử lý
dữ liệu để giải quyết kỹ thuật phức tạp và thách thức khoa học như là một phần
của các hoạt động đang tiếp cận cộng đồng của chúng tôi hiệu suất cao."
SV: Phạm Vĩnh Thành Trang: 11
Tiểu luận: Tính toán lưới
James Cox nói: "Raspberry Pi rất thú vị và tuyệt vời mà tôi có thể giữ
nó trong tay của tôi và viết chương trình máy tính hoặc chơi trò chơi trên đó."
(Southampton engineers a Raspberry Pi Supercomputer, 2012,
/>r.shtml)
II. Mô hình RPiCluster của ĐH Boise State
Joshua Kiepert, một sinh viên đang học Tiến sĩ tại khoa Điện tử và Máy
tính tại trường ĐH Boise State, đã tạo ra một siêu máy tính mini sử dụng
Raspberry Pi với giá thấp hơn 2000 USD.
Mặc định, CPU của Raspberry Pi chỉ chạy 700 Mhz, Project của
Kiepert đã thực hiện overclock CPU lên tốc độ 1 Ghz.
Bản thân các Raspberry Pi thú vị, nhưng có vẻ như không giống thành
phần siêu máy tính. Nhưng, Kiepert đã có một vấn đề. Ông đã làm nghiên cứu
tiến sĩ của ông về chia sẻ cho các mạng cảm biến không dây bằng cách mô phỏng
các mạng trên Linux hỗ trợ siêu máy tính Onyx Beowulf-cluster của trường
Boise State. Theo tiêu chuẩn siêu máy tính, hiện có 32 nút, mỗi trong số đó có
một bộ xử lý E3-1225 3.1GHz Intel Xeon quad-core
3
và 8GBs bộ nhớ RAM.
3 Intel® Xeon® Processor E3-1225 (6M Cache, 3.10 GHz): 4 core x 4 thread
SV: Phạm Vĩnh Thành Trang: 12
Tiểu luận: Tính toán lưới
Một Beowulf-cluster chỉ đơn giản là một bộ sưu tập giá rẻ của COTS
(Commercial Off The Shelf) máy tính nối mạng với nhau chạy Linux và phần
mềm xử lý song song. Thiết kế đầu tiên của Don Becker và Thomas Sterling tại
Trung tâm Goddard Space Flight vào năm 1994, thiết kế này đã trở thành một

trong những kiến trúc siêu máy tính cốt lõi.
Vì vậy, với một siêu máy tính kiểu Beowulf hoàn toàn tốt, tại sao
Kiepert bắt đầu để tạo Beowulf cluster riêng của mình?
- Đầu tiên, trong khi Onyx cluster có một đánh giá thời gian hoạt
động tuyệt vời, nhưng nó có thể bị chết vì bất kỳ số lý do nào.
Khi bạn có một dự án đòi hỏi việc sử dụng một nhóm như vậy và
Onyx là không có, không có sự lựa chọn khác trên khuôn viên
trường dành cho sinh viên ngoài việc chờ đợi cho nó trở nên có
sẵn một lần nữa. RPiCluster cung cấp một tùy chọn để tiếp tục
phát triển các dự án yêu cầu MIT [Thông báo Đi qua giao diện]
hoặc Java trong môi trường cluster.
- Thứ hai, RPis cung cấp một tính năng độc đáo ở chỗ chúng có
giao diện phần cứng cấp thấp bên ngoài cho các hệ thống nhúng
sử dụng, chẳng hạn như I2C, SPI, UART, và GPIO. Điều này là
rất hữu ích cho các kỹ sư điện yêu cầu thử nghiệm của phần
cứng nhúng trên một quy mô lớn.
- Thứ ba, có người dùng chỉ truy cập vào một nhóm là tốt nếu
cluster có tất cả các công cụ cần thiết được cài đặt. Nếu không
tuy nhiên, sau đó bạn phải làm việc với các quản trị viên cụm để
có được những thứ làm việc. Như vậy, bằng cách xây dựng
nhóm riêng của mình, ta có thể trang bị cho nó với bất cứ điều gì
mà ta có thể cần trực tiếp.
- Cuối cùng, RPis có giá rẻ! Nền tảng RPi có phải là một trong
những cách rẻ nhất để tạo ra một cụm 32 nút. Chi phí cho một
RPi với một thẻ 8GB SD là ~ $ 45. Để so sánh, mỗi nút trong
cluster Onyx là một nơi nào đó giữa $ 1,000 và $ 1,500. Vì vậy,
SV: Phạm Vĩnh Thành Trang: 13
Tiểu luận: Tính toán lưới
gần với giá của một nút trên máy tính, chúng ta có thể tạo ra một
nút 32 Raspberry Pi cụm!

Trong một e-mail, Kiepert nói thêm: "Dự án này được bắt đầu bởi vì đã
có một tuần (nghỉ mùa xuân), trong đó tôi không thể sử dụng Beowulf cluster
Onyx tôi đã sử dụng. Onyx cluster giảm do một số đổi mới trên máy tính phòng
thí nghiệm. Điều đó đã làm tôi suy nghĩ, tôi cần phải tiếp tục kiểm tra công việc
học tiến sĩ của tôi, nhưng nếu tôi không có quyền truy cập vào Onyx tôi không có
bất kỳ tùy chọn nào khác.
Trước đây, tôi đã dành rất nhiều thời gian làm việc trên RPis, và tôi
cũng đã được một thời gian dài người dùng Linux (Fedora và Mint chủ yếu).
Ngoài ra, trong phòng thí nghiệm nghiên cứu nơi tôi làm việc, chúng tôi sử dụng
RPis như máy chủ cho các hệ thống mạng cảm biến không dây tùy chỉnh xây
dựng của chúng tôi, để tăng số liên kết dữ liệu cảm biến để cơ sở dữ liệu trung
tâm của chúng tôi. Vì vậy, dự án này đã cho tôi lấy kinh nghiệm trước đây của
tôi với các cluster và RPis lên một tầm cao, và nó đã cho tôi một số lựa chọn để
tiếp tục công việc luận án của tôi. Một điều chắc chắn là nó chắc chắn thêm một
cái gì đó để những kinh nghiệm khi bạn có thể sử dụng một cluster bạn xây
dựng."
Cho mình con-siêu máy tính, Kiepert chọn sử dụng Arch Linux. Ông
giải thích, "Arch Linux có cách tiếp cận tối giản. Những hình ảnh rất nhỏ tại ~
150MB. Nó khởi động trong khoảng 10 giây. Những hình ảnh cài đặt không có
gì thêm bao gồm. Các cài đặt mặc định cung cấp một xương sống, môi trường tối
thiểu, mà nó khởi động một giao diện dòng lệnh (CLI) với hỗ trợ mạng. Vẻ đẹp
của phương pháp này là bạn có thể bắt đầu với, thiết lập nhanh nhất sạch và chỉ
thêm những điều bạn cần cho ứng dụng của bạn."
Tất nhiên, RPicluster của ông là không lý tưởng. Kiepert thừa nhận,
"các đề xuất giá trị tổng thể là khá tốt, đặc biệt là nếu chương trình phát triển
cụm tập trung vào xử lý phân tán chứ không phải là xử lý song song. Đó là, nếu
các chương trình đang được phát triển cho các nhóm được phân phối tự nhiên,
SV: Phạm Vĩnh Thành Trang: 14
Tiểu luận: Tính toán lưới
nhưng không dùng CPU quá nhiều. Tính các ứng dụng chuyên sâu sẽ cần phải

tìm ở nơi khác, như đơn giản là không đủ "sức ngựa" có sẵn để làm cho RPi là
một sự lựa chọn thực sự hữu ích cho cluster computing."
Trong cuộc trò chuyện e-mail, Kiepert nói thêm rằng, "Có lẽ vấn đề khó
chịu nhất mà tôi có [với việc thiết lập các cluster] là lỗi của thẻ SD. Ban đầu, tôi
đã có rất nhiều lỗi hệ thống tập tin khi tôi tắt nguồn các cluster (shutdown –h
now) và đã cố gắng để bắt đầu lại một lần nữa. Điều này dường như là một vấn
đề được biết đến với các RPi mà bạn có nhiều khả năng kinh nghiệm khi bạn ép
xung. Điều kỳ lạ là nó chỉ xảy ra trên các nút nô lệ (slave), không phải là chủ
(master). [Các nút chủ là Samsung Chromebook Series 3 với một CPU ARM
dual-core 1.7 GHz Cortex-A15.]
Cuối cùng, tôi thấy rằng nếu tôi bỏ NFS mount trước khi tắt nguồn, vấn
đề có vẻ được giảm. Như là một phần của sự phát triển tôi tạo ra một script để
ghi các ảnh (img) thẻ SD để khi ghi lại ảnh là cần thiết. Tôi chỉ cần cung cấp tên
máy chủ và địa chỉ IP, và script hiện phần còn lại. Điều này giúp đơn giản hoá
việc ghi lại ảnh, đặc biệt là lần đầu tiên tôi đã phải ghi tất cả 32 trong số chúng
trong khi đưa ảnh khởi tạo vào thẻ! "
Vào cuối ngày, Kiepert có siêu máy tính giá rẻ, làm việc được, mặc dù
trong đó vẫn còn sử dụng "băng điện để giữ người hâm mộ trên các thùng máy!"
Vì vậy, có câu hỏi: "Nó chạy nhanh như thế nào?"
Kiepert chạy High Performance Linpack (HPL), benchmark siêu máy
tính tiêu chuẩn trên máy tính của mình làm ở nhà và thấy rằng RPiCluster của
mình với 32 Broadcom BCM2708 ARM11 bộ vi xử lý của nó là chạy bộ xử lý
1GHz và bộ nhớ RAM 14.6GB có thể sử dụng lại hiệu năng cao nhất của HPL
10.13 GFLOPS
4
. Đó không phải đi để có được cụm này vào danh sách Top500
siêu máy tính, nhưng như Kiepert quan sát thấy, "tính Cray-2 siêu máy tính đầu
tiên vào năm 1985 đã làm 1,9 GFLOPS. "
4 GFLOPS: Giga Flops: một tỷ FLOP (một tỷ phép tính mỗi giây)
SV: Phạm Vĩnh Thành Trang: 15

Tiểu luận: Tính toán lưới
(Build your own supercomputer out of Raspberry Pi boards
, Steven J. Vaughan-Nichols
5
, 23-05-2013, />own-supercomputer-out-of-raspberry-pi-boards-7000015831/)
III. Cách xây dựng RPiCluster
Dựa theo cách xây dựng RPiCluster của trường ĐH Southampton.
( />.htm).
Có thể sử dụng Raspberry Pi giả lập trên phần mềm ảo hóa QEMU để
làm cài đặt mẫu.
5 Steven J. Vaughan-Nichols, aka sjvn, has been writing about technology and the business of technology
since CP/M-80 was the cutting edge PC operating system. SJVN covers networking, Linux, open source,
and operating systems. ( />SV: Phạm Vĩnh Thành Trang: 16
Tiểu luận: Tính toán lưới
1 Cài hệ điều hành cho Raspberry Pi
- Tải tập tin ảnh của hệ điều hành Raspbian (img) về máy:

- Sử dụng chương trình New Out of Box Software (NOOBS)
( hoặc bất kì chương
trình nào tương tự để ghi ảnh vào thẻ nhớ.
- Khởi động Pi.
- Cấu hình Raspberry Pi bằng giao diện raspi-config (hiện lên lúc
khởi động lần đầu />- Login vào hệ điều hành bằng user mặc định: pi / raspberry
2 Cài đặt MPI để chạy mã trên nhiều nút
- Nâng cấp danh sách gói phần mềm mới nhất
$sudo apt-get update
- Nâng cấp các gói phần mềm mới nhất
$sudo apt-get upgrade
- Tải Fortran
$sudo apt-get install gfortran

SV: Phạm Vĩnh Thành Trang: 17
Tiểu luận: Tính toán lưới
- Đọc tài liệu MPI trên Raspberry Pi. Đây là bài viết tuyệt vời để
đọc />processing-on-pi-bramble.html
- Tạo thư mục để bỏ mã nguồn vào
$mkdir /home/pi/mpich2
$cd /home/pi/mpich2
- Tải mã nguồn MPI từ Argone
$ wget />wnloads/tarballs/1.4.1p1/mpich2-1.4.1p1.tar.gz
Chú ý: có thể tải bản MPICH2 ổn định mới nhất tại

- Giải nén
$ tar xfz mpich2-1.4.1p1.tar.gz
Chú ý: gói tin có thể thay đổi nếu bạn dùng gói mới hơn
- Tạo nơi đặt các công cụ biên soạn
$ sudo mkdir /home/rpimpi/
$ sudo mkdir /home/rpimpi/mpich2-install
- Tạo thư mục build
$ mkdir /home/pi/mpich_build
$ cd /home/pi/mpich_build
- Bây giờ chờ cho MPI được build và install
$ sudo /home/pi/mpich2/mpich2-1.4.1p1/configure
-prefix=/home/rpimpi/mpich2-install
$ sudo make
$ sudo make install
- Tạo biến môi trường trỏ tới thư mục chạy MPI
$ export PATH=$PATH:/home/rpimpi/mpich2-install/bin
$ nano ~/.profile
thêm thông tin sau vào:
# Add MPI to path

PATH="$PATH:/home/rpimpi/mpich2-install/bin"
- Kiểm tra mọi thứ được cài đặt đúng chưa
$ which mpicc
$ which mpiexec
- Tạo thư mục để test
$ cd ~
$ mkdir mpi_testing
$ cd mpi_testing
- Bây giờ chúng ta có thể kiểm tra MPI hoạt động trên một Nút
SV: Phạm Vĩnh Thành Trang: 18
Tiểu luận: Tính toán lưới
$ mpiexec -f machinefile -n <number> hostname
 machinefile: chứa các IP của các Nút theo định
dạng A.B.C.D
- Chạy đoạn code C mẫu: sử dụng MPI để tính số PI: (trong ví dụ,
thư mục con là nơi chứa ví dụ chương trình tính PI (CPI) thông
thường)
$ cd /home/pi/mpi_testing
$ mpiexec -f machinefile -n 2 ~/mpich_build/examples/cpi
Output:
Process 0 of 2 is on raspberrypi
Process 1 of 2 is on raspberrypi
pi is approximately 3.1415926544231318, Error is
0.0000000008333387
- Khi bạn đã tạo được template cho một nút RPiCluster, bạn dùng
chương trình Win32-Disk-Imager để ghi dữ liệu trong thẻ nhớ
SD thành tập tin img. Sau đó, ghi tập tin template này vào các
thẻ nhớ cho các Nút còn lại.
IV. Đánh giá hệ thống RPiCluster
So sánh giữa 3 thiết bị: Onyx, Chromebook, Raspberry Pi

1 Đánh giá về hiệu năng xử lý
- Khả năng xử lý của một nút của từng hệ thống
SV: Phạm Vĩnh Thành Trang: 19
Tiểu luận: Tính toán lưới
- Khả năng xử lý của Raspberry Pi từ 1 tới 32 nút
2 Đánh giá về mức tiêu hao điện năng
Với sức mạnh được phân phối trực tiếp thông qua một nguồn 5V với
cường độ dòng điện đủ để chia tải toàn bộ cluster. Mỗi RPi hút khoảng 400mA
tại 5V (2W), do đó chúng tôi cần tối thiểu là 13A của 5V (65W) (và nhiều hơn
nữa cho việc ép xung). Bạn có thể mua một đầu ra 5V cung cấp điện chuyên
dụng cao, nhưng một lựa chọn tuyệt vời là sử dụng một nguồn cung cấp năng
lượng tiêu chuẩn máy tính. Nguồn cung cấp điện máy tính đã được thiết kế cho
tải cao 5V, và chúng tương đối rẻ. Các Thermaltake 430W (430W đầu ra kết hợp
cho 5V, 12V, vv), chúng ta lựa chọn được đánh giá để cung cấp 30A ở 5V
(150W) và chi phí 36 USD. Chúng ta đã lựa chọn để mua hai nguồn cung cấp để
giữ cho tải tổng thể rất thấp trên mỗi thứ và cho phép ép xung hoặc mở rộng
trong tương lai.
SV: Phạm Vĩnh Thành Trang: 20
Tiểu luận: Tính toán lưới
Một trong những điều tuyệt vời về việc tạo ra một cluster với bộ vi xử
lý dựa trên ARM là tiêu thụ điện năng thấp. Như đã thảo luận trước đó, mỗi RPi
sử dụng khoảng 2W (khi chạy ở 700MHz). Một số phép đo điện đã được thực
hiện vào RPiCluster trong trạng thái hoạt động khác nhau. Điều này cho phép
việc sử dụng năng lượng thành phần cá nhân được xác định mà không cần dùng
mỗi mục off-line để đo sức mạnh thu hút riêng. Đã ép xung cluster để tần số lõi
bộ xử lý 1GHz và 500MHz cho SDRAM, , tiêu thụ điện năng cao hơn. Các
hình bên dưới cho thấy việc sử dụng sức mạnh tổng thể theo tỷ lệ tương đối
(phần trăm) và watt, tương ứng (ép xung lên 1GHz).
SV: Phạm Vĩnh Thành Trang: 21
Tiểu luận: Tính toán lưới

SV: Phạm Vĩnh Thành Trang: 22
Tiểu luận: Tính toán lưới
PHẦN 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I. Kết luận
Đề tài đã trình bày tóm lược về thiết bị Raspberry Pi, thư viện MPI và
cách xây dựng Raspberry Pi Cluster. Cung cấp một hệ thống, một công cụ để
nghiên cứu, mô phỏng chương trình tính toán lưới.
Đề tài đề cập tới thiết bị Raspberry Pi, một thiết bị đang được nhiều
trường Đại học, các công ty nghiên cứu thiết bị nhúng quan tâm. Hiện tại, ở Việt
Nam chỉ quan tâm tới thiết bị Raspberry Pi như một thiết bị có khả năng cài hệ
điều hành, lập trình nhúng điều khiển thiết bị và khả năng chạy các tập tin video
chuẩn HD. Việc xây dựng tài liệu này giúp ích cho việc tìm hiểu, nghiên cứu tạo
ra hệ thống supercomputer với chi phí đầu tư thấp, chi phí vận hành, bảo trì thấp.
II. Hướng phát triển
Đề tài chỉ đang ở mức tìm hiểu và cài đặt ban đầu. Các vấn đề gặp phải
là: thẻ nhớ SD hay bị lỗi, thiết bị nóng khi xử lý nhiều nên giảm hiệu xuất, việc
tính toán dựa trên CPU, chỉ cài đặt mô phỏng tính toán số PI.
Với nhưng khó khăn trên, cần những cải tiến sau:
- Tìm hiểu khả năng đọc/ghi dữ liệu trên thẻ nhớ SD để đạt được
kết quả tốt nhất.
- Làm hệ thống tản nhiệt để làm mát hệ thống, giúp RPi hoạt động
tốt lúc được ép xung.
- RPi được thiết kế với chip GPU của Nvidia, tìm hiểu cách tận
dụng GPU trong hệ thống RPiCluster.
- Mô phỏng các thuật toán phức tạp khác.
SV: Phạm Vĩnh Thành Trang: 23
Tiểu luận: Tính toán lưới
TÀI LIỆU THAM KHẢO

[1] Bài giảng của Thầy PGS.TS. Nguyễn Phi Khứ

[2] Joshua Kiepert, 22/May/2013, Creating a Raspberry Pi-Based Beowulf
Cluster, Boise State University [pdf] Available at: <
/>Based.Beowulf.Cluster_v2.pdf >
[3] Prof. Simon Cox, 09/Jul/2013, Steps to make Raspberry Pi Supercomputer,
University of Southampton [pdf] Available at: <
/>ton_web.pdf >
[4] Steven J. Vaughan-Nichols, 23/May/2013, Build your own supercomputer
out of Raspberry Pi boards, Available at: < />your-own-supercomputer-out-of-raspberry-pi-boards-7000015831/ >
[5] Message Passing Interface, Wiki, Available at: <
>
[6] OpenMPI, />[7] MPICH, />[8] Duy Luân, 24/May/2013, Tìm hiểu cơ bản về siêu máy tính, những cỗ máy
phức tạp và mạnh mẽ, Available at: < />co-ban-ve-sieu-may-tinh-nhung-co-may-phuc-tap-va-manh-me.2106936/ >
SV: Phạm Vĩnh Thành Trang: 24

×