1. Trang chủ
  2. » Công Nghệ Thông Tin

tính toán lưới - chương 6 ứng dụng khả lưới tính toán

87 606 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 3,84 MB

Nội dung

TÍNH TỐN LƯỚI Chương Ứng dụng khả lưới tính toán Giảng viên: TS Đàm Quang Hồng Hải Ứng dụng khả Lưới tính tốn • Khả lưới khơng có nghĩa đơn giản thực công việc tảng Grid • Hầu tất chương trình máy tính hàng loạt vận chuyển đến Lưới tính tốn thực với kết nối ssh từ xa • Đây mơ hình có kể từ máy tính lần kết nối (thơng qua telnet) • Khả lưới bao gồm sử dụng tính chất phân phối cơng việc tảng Grid Các mơ hình Lưới tính tốn Bài tốn Lập trình lưới • Tính tốn lưới cung cấp khả sử dụng nhiều máy tính toán để giảm thời gian thực • Giả sử vấn đề chia thành p phần nhau, với phần thực máy tính riêng biệt thời điểm Thời gian để thực vấn đề cách sử dụng p máy tính đồng thời 1/p thời gian máy tính • Mơ hình lý tưởng – tốn khơng chia thành phần thực đồng thời Khả lưới tính tốn cho ứng dụng • Khả thực thi ứng dụng tảng Lưới, cách sử dụng nguồn lực phân phối có sẵn tảng • Khả lưới tính tốn dùng để thích ứng phát triển chương trình nhằm có khả giao tiếp với trung gian lưới (grid middleware) để xếp sử dụng tài nguyên từ môi trường phân tán Lưới cách có hiệu đáp ứng nhu cầu chương trình Minh họa cần thiết ứng dụng lưới • Để tính tốn dự báo vùng x 108 phần tử, phần tử tính tốn cần 200 phép tính • Như bước thời gian cần 200 x x 108 = 1011 phép tính • Khi đó, cần dự báo 20 ngày sau, với bước thời gian khoảng 10 phút, phải phân chia thành 20 x 24 x 60/10 = 2880 bước thời gian, • Cần 1011 x 2880 = 2,88 x 1014 phép tính • Khi đó, với máy tính khả 100 MFlops (108 Flops), phải cần đến 2,88 x 1014/108 = 2,88 x 106 giây tính tốn xong (khoảng 33 ngày đêm) Như vậy, 33 ngày tính có kết ngày thứ 20 Minh họa cần thiết ứng dụng lưới (tiếp) • Nếu u cầu phải thực tính tốn vịng = 3600 giây, phải có máy với khả 2,88 x 1014/3600 = 80 x 109 Flops (= 80 GFlops) Nếu xử lý với GFlops, cần 80 xử lý • Như vậy, để giải vấn đề đặt ra, thay tăng tốc độ tính tốn máy tính, sử dụng lúc nhiều xử lý Ứng dụng lưới • Ở chúng tơi mơ tả cách tiếp cận khác • Chúng ta phân chia việc sử dụng tài nguyên máy tính Grid thành hai loại: – Sử dụng nhiều máy tính riêng biệt giải nhiều vấn đề – Sử dụng nhiều máy tính chung giải vấn đề Nhiều máy tính riêng biệt giải nhiều vấn đề Qt thơng số • Trong số lĩnh vực lĩnh vực, nhà khoa học cần để chạy chương trình tương tự nhiều lần, với liệu đầu vào khác • "Qt" qua khơng gian thơng số với giá trị khác tham số đầu vào tìm kiếm giải pháp • Nhiều trường hợp, khơng dễ dàng để tính tốn câu trả lời can thiệp người cần thiết để tìm kiếm thiết kế khơng gian Nhiều máy tính qt thơng số Thực chương trình • MPI-1 không xác định chi tiết thực tất Lệnh thường dùng để thực chương trình mpirun , tùy chọn -np xác định số lượng tiến trình Ví dụ mpirun -np myProg dịng đối số cho myProg thêm vào sau myProg truy cập chương trình Ví dụ với tập tin machines • Tập tin machines Coit-grid01.uncc.edu Coit-grid02.uncc.edu Coit-grid03.uncc.edu Coit-grid04.uncc.edu Coit-grid05.uncc.edu • Chạy mpirun -machinefile machines -n prog • Chạy prog với tiến trình, tiến trình thực máy danh sách MPI thông qua danh sách máy gửi tiến trình tới máy Rank lập trình MPI • Trong MPI, tiến trình giao tiếp cho số gọi Rank số khơng trở Chương trình sử dụng cấu trúc điều khiển, lệnh IF báo cáo, đạo trình thực hành động cụ thể • Ví dụ: if (rank == 0) /* rank process does this */; if (rank == 1) … /* rank process does this*/; Hoặc theo cách tiếp cận Master-Slave if (rank == 0) … /* master does this */; else /* slaves this */; Khởi tạo chương trình • Tất tiến trình bắt đầu đồng thời với • Thực máy bắt đầu chương trình biên dịch • Khởi tạo theo cách thức MPI Mơ hình đa tiến trình, đa liệu (MPMD) với tiến trình động • Mơ hình đa tiến trình, đa liệu (MPMD) với MPI2 • Một xử lý thực tiến trình Các tiến trình khác tiến trình Process spawn( ); Tim e Sta t x ecutio of process r e n Process Ví dụ MPI “Hello world” #include #include #include "mpi.h" main(int argc, char **argv ) { char message[20]; int i,rank, size, type=99; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD,&size); MPI_Comm_rank(MPI_COMM_WORLD,&rank); if(rank == 0) { strcpy(message, "Hello, world"); for (i=1; i

Ngày đăng: 13/03/2014, 10:13

TỪ KHÓA LIÊN QUAN