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

Xử lý các mệnh đề về dữ liệu chia sẻ của OpenMP trên các hệ thống sử dụng bộ nhớ phân tán

7 36 0

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

THÔNG TIN TÀI LIỆU

Bài viết này trình bày các đề xuất để xử lý các mệnh đề về dữ liệu chia sẻ bằng cách bổ sung các câu lệnh xử lý chuyên biệt vào các khuôn dạng chuyển đổi của CAPE cho các cấu trúc song song của OpenMP.

Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR); Huế, ngày 07-08/6/2019 DOI: 10.15625/vap.2019.00074 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN Đỗ Xuân Huyền1, Hà Viết Hải2, Trần Văn Long3 Trường Đại học Khoa học, Đại học Huế Trường Đại học Sư phạm, Đại học Huế Trường Cao đẳng Cơng nghiệp Huế doxuanhuyen@gmail.com, haviethai@dhsphue.edu.vn, tvlong@hueic.edu.vn TĨM TẮT: CAPE hướng tiếp cận để cài đặt OpenMP - giao diện lập trình chuẩn cho lập trình song song hệ thống sử dụng nhớ chia sẻ - lên hệ thống sử dụng nhớ phân tán Các phiên CAPE xây dựng thử nghiệm, đánh giá với khả cung cấp hiệu gần tương đương với hiệu MPI, cơng cụ có khả cung cấp hiệu cao hệ thống phân tán Tuy nhiên, phiên chưa xử lý vấn đề liệu chia sẻ OpenMP, chưa cài đặt cách hoàn toàn giao diện Bài báo trình bày đề xuất để xử lý mệnh đề liệu chia sẻ cách bổ sung câu lệnh xử lý chuyên biệt vào khuôn dạng chuyển đổi CAPE cho cấu trúc song song OpenMP Từ khóa: Bộ nhớ phân tán, CAPE, OpenMP I MỞ ĐẦU OpenMP [1] giao diện lập trình (API) cung cấp mức trừu tượng hóa cao để viết chương trình song song chạy hệ thống sử dụng nhớ chia sẻ (multi-core, multi-CPU) OpenMP bao gồm tập biến môi trường, thị hàm, xây dựng để hỗ trợ việc dễ dàng biến chương trình ngơn ngữ sở C/C++ Fortran thành chương trình song song OpenMP sử dụng mơ hình thực fork-join với cấu trúc song song sở luồng (thread) Do sử dụng cấu trúc sở luồng, phương thức tổ chức nhớ OpenMP nhớ chia sẻ, khơng gian nhớ sử dụng chung luồng Để viết chương trình song song với OpenMP, lập trình viên bắt đầu cách viết chương trình ngơn ngữ gốc (C/C++ Fortran), sau thêm dần vào thị OpenMP để định phần việc cần thực song song Việc chia sẻ liệu đồng liệu tiến hành cách ngầm định tường minh qua thị (directive) đơn giản Nhờ đặc điểm mà OpenMP trở nên dễ học, dễ sử dụng tốn cơng sức lập trình lại cung cấp hiệu cao kiến trúc sử dụng nhớ chia sẻ Tuy nhiên, hạn chế lớn OpenMP cài đặt cách hoàn chỉnh cho kiến trúc sử dụng nhớ chia sẻ phức tạp việc cài đặt tất yêu cầu OpenMP kiến trúc sử dụng nhớ khác Đã có nhiều nhóm nghiên cứu việc đưa OpenMP lên hệ thống máy tính sử dụng nhớ phân tán Một số cơng trình nghiên cứu bật mơ hình sử dụng SSI [2]; SCASH [3]; sử dụng mơ hình RC [4] biên dịch thành MPI [5][6]; sử dụng Global Array [7],… Tuy nhiên, chưa có cơng trình thành cơng hai mặt tương thích hồn tồn với OpenMP có hiệu cao CAPE [8] phát triển với mục tiêu đưa OpenMP lên hệ thống sử dụng nhớ phân tán, điển hình cluster, lưới đám mây Hình quy trình CAPE chuyển đổi mơ hình thực fork/join tảng chương trình đa luồng (multithread) thành mơ hình đa tiến trình máy tính phân tán Theo đó, chương trình OpenMP tảng C/C++ biên dịch thành chương trình C/C++ dạng CAPE cách sử dụng trình biên dịch CAPE, với khuôn dạng (prototype) chuyển đổi tương ứng cho thị OpenMP Các chương trình kết khơng cịn chứa thị OpenMP nữa, sau lại tiếp tục biên dịch thành chương trình thực cách sử dụng dịch C/C++ thơng thường Các chương trình chạy hệ thống sử dụng nhớ phân tán có cài đặt sẵn tảng (platform) CAPE Hình Quy trình biên dịch chương trình OpenMP sang CAPE Các phiên CAPE cài thiết kế với giới hạn thực toán thỏa mãn điều kiện Bernstein, với mục tiêu để phần việc thực tiến trình song song thực cách độc lập, khơng có yêu cầu chia sẻ liệu chúng [9] Tuy nhiên, để CAPE tương thích hồn tồn với OpenMP cần phải thực vấn đề chia sẻ liệu tiến trình chạy nhiều máy khác nhau, tương tự việc chia sẻ liệu luồng chương trình OpenMP thực hệ thống sử dụng nhớ chia sẻ Bài báo nhằm trình bày giải pháp cho phần công việc yêu cầu này, đưa cách thức để xử lý mệnh đề (clause) liên quan đến liệu chia sẻ 578 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN Phần lại báo cấu trúc sau: mục II trình bày cơng trình nghiên cứu liên quan; mục III liệt kê mệnh đề liệu chia sẻ OpenMP; mục IV trình bày đề xuất khn dạng chung để xử lý mệnh đề liệu chia sẻ cho CAPE; mục V chứa chứng minh tính đắn đề xuất cuối phần kết luận hướng nghiên cứu II CÁC NGHIÊN CỨU LIÊN QUAN A Sự khác mơ hình chia sẻ liệu OpenMP hệ thống sử dụng nhớ chia sẻ hệ thống sử dụng nhớ phân tán OpenMP sử dụng mơ hình thực đa luồng để vận hành cấu trúc song song OpenMP, luồng chia sẻ khơng gian nhớ chung chương trình Tuy nhiên, để tăng tốc độ xử lý, OpenMP áp dụng mơ hình chia sẻ liệu đồng trễ (Relaxed-Consistency - RC) [10] Với mơ hình này, luồng sử dụng nhớ cục để tăng hiệu suất truy xuất nhớ Việc đồng không gian nhớ luồng thực tự động lúc bắt đầu kết thúc cấu trúc vịng lặp song song định cụ thể qua dẫn flush Hình minh họa mơ hình tổ chức vùng nhớ cục chia sẻ OpenMP Hình Mơ hình vùng nhớ chia sẻ cục OpenMP Ngữ cảnh thay đổi hoàn toàn sử dụng OpenMP mơ hình đa tiến trình, vận hành hệ thống phân tán, tiến trình sử dụng khơng gian nhớ riêng, máy tính khác Về bản, cách thức tương thích với mơ hình nhớ RC OpenMP, với u cầu kèm theo phải xử lý được thị mệnh đề liên quan đến liệu chia sẻ B Nguyên lý vận hành chia sẻ liệu CAPE CAPE phương pháp cài đặt OpenMP dựa kỹ thuật Chụp ảnh tiến trình (Checkpointing) [8] Chụp ảnh tiến trình [15] kỹ thuật chụp lưu trữ trạng thái tiến trình vận hành cho có khả khơi phục lại trạng thái thời điểm sau Hình Mơ hình vùng nhớ chia sẻ cục OpenMP Hình thể ý tưởng CAPE sử dụng ảnh tiến trình để thực trình fork-join (chia hợp) OpenMP cho cấu trúc song song Theo mơ hình này, chương trình khởi tạo tập máy tính, có máy đóng vai trị máy chủ (master) tương ứng với luồng máy khác đóng vai trị máy phụ/máy tính tốn (slave) - tương ứng với luồng phụ/luồng tính tốn Khi chương trình gặp cấu trúc song song OpenMP, master phân việc cho luồng phụ cách gửi ảnh chụp tiến trình tương ứng đến slave Slave nhận ảnh chương trình tích hợp chúng vào khơng gian vùng nhớ thực chạy phần việc Phần việc tương ứng với pha fork mơ hình thục fork-join OpenMP Sau đó, slave gửi kết lại cho master ảnh chụp tiến trình hồn thành cơng việc Master nhận kết tất slave tích hợp vào khơng gian vùng nhớ mình, trình kết thúc đồng nghĩa toàn đoạn xử lý song song hoàn thành (tương ứng với pha join OpenMP) Đỗ Xuân Huyền, Hà Viết Hải, Trần Văn Long 579 Như mục II.A nêu, vấn đề cần giải liệu chia sẻ máy phân tán Các vấn đề bao gồm: 1) xây dựng mô hình nhớ tương thích với mơ hình RC OpenMP; 2) xử lý thị flush OpenMP; 3) xử lý mệnh đề liệu chia sẻ khác Trong [16] cơng bố mơ hình nhớ đề xuất cho việc xử lý thị flush OpenMP Bài báo tập trung vào vấn đề 3) - xử lý mệnh đề liệu chia sẻ OpenMP III DANH SÁCH CÁC CHỈ THỊ VÀ MỆNH ĐỀ CHIA SẺ DỮ LIỆU CỦA OPENMP OpenMP có tập mệnh đề liên quan đến liệu chia sẻ Bảng liệt kê danh sách mệnh đề chia sẻ liệu OpenMP với mô tả tác dụng chúng Mệnh đề default (none|shared) shared(list) private(list) firstprivate (list) lastprivate(list) copyin(list) copyprivate(list) reduction(list, ops) Bảng Mô tả loại biến chia sẻ OpenMP Mô tả Chỉ định mặc định tính chất biến chia sẻ không Chỉ định danh sách (list) biến chia sẻ Chỉ định danh sách biến cục Cho phép chia sẻ giá trị biến private vào đoạn vòng lặp song song Cho phép chia sẻ giá trị biến private kết thúc đoạn vòng lặp song song Cho phép truy cập giá trị biến threadprivate Chỉ định danh sách biến private chia sẻ với thread khác Chỉ định danh sách biến reduction theo toán tử ops để kết thúc đoạn vịng lặp để giá trị biến chia sẻ với thread khác Các mệnh đề sử dụng thị OpenMP, với danh sách liệt kê Bảng Bảng Các thị sử dụng mệnh đề chia sẻ liệu OpenMP Ví dụ sau minh họa cho thị OpenMP có sử dụng mệnh đề liệu chia sẻ … #pragma omp parallel private(i) firstprivate(j) { i = 3; j = j + 2; assert (*ptr_i == && *ptr_j == 2); } … Trong đó, mệnh đề private(i)chỉ định biến i cục cho luồng thực công việc song song, tức luồng sử dụng biến i cục riêng mình, khơng liên quan đến biến i tồn trước đó; firstprivate(j)chỉ định đặc tính tương tự cho biến j, có thêm yêu cầu biến j cục khởi tạo với giá trị biến j tồn trước IV ĐỀ XUẤT GIẢI PHÁP XỬ LÝ CÁC MỆNH ĐỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CAPE A Nguyên tắc xử lý Xây dựng khuôn dạng chuyển đổi bổ sung vào khuôn dạng chuyển đổi có câu lệnh để thực mệnh đề chia sẻ liệu Ví dụ: khn dạng chuyển đổi cho cấu trúc parallel for - cấu trúc điển hình cho việc biên dịch chương trình OpenMP CAPE [12] - bổ sung thêm khối lệnh: before_block, enter_block, exit_block after_block để xử lý với mệnh đề chia sẻ liệu clause_U hình 580 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN Hình Khn dạng tổng qt việc chuyển đổi cấu trúc parallel for với mệnh đề liệu chia sẻ Theo khuôn dạng tổng quát này, chương trình dịch khởi đầu tất khối before_block, enter_block, after_block với giá trị rỗng Sau đó, duyệt mệnh đề chia sẻ liệu để thêm vào phần phù hợp exit_block B Các khuôn dạng cụ thể cho mệnh đề Khuôn dạng chuyển đổi cho cấu trúc parallel for Các câu lệnh bổ sung cụ thể cho mệnh đề chia sẻ OpenMP liệt kê Bảng 3, ngoại trừ mệnh đề reduction copyprivate xử lý mục Bảng Ánh xạ hàm CAPE tương ứng mệnh đề chia sẻ OpenMP before_block enter_block exit_block after_block shared (x) threadprivate (x) typeof (x) x ; typeof ( x ) x; private (x) typeof (x) x ; typeof ( x ) x; firstprivate (x) typeof (x) x ; x = x; typeof ( x ) x; x = x lastprivate (x) typeof (x) x ; typeof ( x ) x ; if (thread_num == num_threads - ) ) x = x reduction (x) typeof (x) x ; typeof ( x ) x; init_value (x) ; send (x, master); tiếp tục mục copyin (x) typeof (x) x ; if ( master ( ) ) x = x ; if ( master ( ) ) { x = x ; broadcast (x) ; } else { receive (x) ; inject (x) ; } copyprivate Chi tiết mục Chi tiết mục Chi tiết mục Chi tiết mục Mệnh đề reduction Hình Prototype CAPE cho mệnh để reduction ( x = x ; Đỗ Xuân Huyền, Hà Viết Hải, Trần Văn Long 581 Mệnh đề reduction định công việc chia sẻ liệu phức tạp OpenMP Nó u cầu tiến trình phải kết xuất liệu tổng hợp từ liệu thành phần tiến trình phụ tính tốn Để giải việc chuyển đổi dẫn reduction CAPE có giải pháp thực hiện: 1) tích hợp giá trị biến cần kết xuất checkpoint slave gửi master để tổng hợp; 2) sử dụng hàm riêng cho biến cần kết xuất để gửi nhận giá trị biến slave master Ví dụ, để thực mệnh đề reduction cho biến x, theo khuôn dạng này, hàm init(x) dòng thứ chạy tất node, để thực khởi tạo biến x Mỗi slave, sau thực phần việc mình, slave gửi kết công việc thực theo dạng checkpoint bình thường (dịng 22), gửi thêm giá trị biến x tới master (dòng 22a) Đối với master, sau nhận kết từ slave, hàm receive_reduction(x) (dòng 9b) nhận tất giá trị biến x từ slave đồng thời thực kết xuất giá trị tổng hợp vào biến x Sau giá trị biến x thêm vào checkpoint (dòng 9c) trước checkpoint gửi tới tất slave để thực việc đồng hóa không gian nhớ tất node Mệnh đề copyprivate copyprivate yêu cầu câu lệnh phải thực vùng single Thông thường, phần single chạy master, hàm broadcast() đoạn kết thúc khối single gửi giá trị biến cập nhật đến tất slave Nhận giá trị cần cập nhật, slave cập nhật vào vùng nhớ tiến trình Hình Prototype cho mệnh đề copyprivate V CHỨNG MINH Để chứng minh đề xuất trên, cần phải khuôn dạng chuyển đổi đảm bảo yêu cầu mệnh đề kết chạy chương trình OpenMP hệ thống sử dụng nhớ chia sẻ CAPE phải giống Điều kiện để chứng cần phải có hai giả thiết Giả thiết thứ nhất: chương trình monitor (checkpointer) chạy xác khơng làm ảnh hưởng đến cấu trúc liệu việc gọi hàm kết chương trình chạy Nghĩa sử dụng chương trình monitor làm checkpointer cho chương trình viết theo CAPE hay chương trình viết ngôn ngữ C cho kết giống Thực tế chương trình monitor phải giám sát chương trình chạy để kiểm soát vùng nhớ bị thay đổi đồng thời cập nhật lại giá trị biến chương trình chạy khơng làm thay đổi cấu trúc logic chương trình chạy Trong khn dạng chuyển đổi, chương trình monitor có bổ sung vào hàm create(), stop(), merge(), wait_for(), nhiên khơng làm thay đổi cấu trúc liệu chương trình chạy Giả thiết thứ hai: đoạn chương trình chạy song song khơng có thị riêng, chẳng hạn thị reduction đồng thời khơng thỏa mãn điều kiện Bernstein địa vùng nhớ chia sẻ (hay giá trị biến chia sẻ) luồng chương trình cập nhật cuối cập nhật giá trị cuối biến Trường hợp 1: Đoạn chương trình song song thỏa mãn điều kiện Bernstein Gọi Ii tập biến đoạn chương trình P i (trên node i) đọc chạy Oi tập biến đoạn chương trình Pi ghi Trong ngữ cảnh CAPE, biến hiểu vùng nhớ Theo điều kiện Bernstein, P P2 chạy đồng thời ba điều kiện sau đồng thời thỏa mãn: I ∩ O2 = O1 ∩ I2 = O1 ∩ O2 = ∅ Hai điều kiện đầu Bernstein với ý nghĩa P1 P2 thực chương trình độc lập mà khơng cần phải u cầu đoạn chương trình phải chạy trước để cung cấp liệu cho chương trình Điều kiện thứ Bernstein với ý nghĩa có cập nhật liệu chia sẻ P P2 Đồng nghĩa checkpoint master cập nhật từ checkpoint P1 P2 theo thứ tự Cụ thể, ảnh nhớ biến đoạn chương P i trước sau chạy có thay đổi gọi deltai lưu tất biến đoạn chương trình P i cập nhật giá trị File deltai đại diện cho Oi Pi Tại master sau nhận ảnh nhớ Pi gộp lại vào vùng nhớ trước gửi 582 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN ảnh nhớ đến Pi cho đoạn mã xử lý song song Theo điều kiện thứ Bernstein, biến chia sẻ chung Pi đồng nghĩa vùng nhớ (biến chia sẻ) bị thay đổi Pi khác Pj với i ≠j Do vậy, việc gộp ảnh vùng nhớ Pi vào ảnh vùng nhớ master gộp mảnh ghép rời tranh Cũng theo điều kiện Bernstein, P P2 độc lập khơng u cầu chương trình cần phải chạy trước nên thứ tự gộp ảnh nhớ vào ảnh nhớ master Trường hợp 2: Đoạn chương trình song song khơng thỏa mãn điều kiện Bernstein Trường hợp 2.1: Khơng có thêm thị riêng OpenMP Trong trường hợp có việc truy cập cập nhật biến chia sẻ chung P i, ngữ cảnh CAPE cập nhật giá trị vùng địa giống nhau, master phần ảnh nhớ P i bị trùng địa với Pj giá trị biến vùng nhớ trùng ghép thay Pj gửi checkpoint đến sau thỏa mãn theo giả thiết thứ 2, kết trả theo P i có cập nhật gần Trường hợp 2.2: Có thêm thị riêng OpenMP Với nguyên lý CAPE xử lý việc cập nhật ảnh vùng nhớ hai P1 P2 có phần trùng lấy theo kết ảnh vùng nhớ trùng Pi gửi đến sau Trong trường hợp chương trình có thị reduction kết chương trình sai khơng tổng hợp kết Pi thành kết cuối theo tốn tử reduction Để thực mệnh đề reduction, CAPE tổ chức thêm hàm khởi tạo init(x) dòng Hình Pi gửi riêng giá trị biến x (dòng 22a) đến master sau ảnh vùng nhớ chương trình P i gửi master để tổng hợp trường hợp trường hợp 2.1 Dịng 9b, 9c Hình thực việc tổng hợp biến x theo phương pháp reduction theo toán tử chương trình (ví dụ: tốn tử + cộng dồn giá trị biến xi Pi) sau cập nhật giá trị vào vị trí ảnh vùng nhớ master trước ảnh vùng nhớ gửi đến slave để thực đoạn mã song song Đối với mệnh đề shared(x), hàng Bảng có ý nghĩa biến x chia sẻ cho slave, CAPE áp dụng nguyên lý Pi cập nhật cuối giá trị kết biến x, tương ứng với trường hợp 2.1 Đối với mệnh đề threadprivate(x), private(x), firstprivate(x), lastprivate(x), dịng đến Hình biến x copy cách khai báo bên đoạn mã vòng lặp để tạo biến cục vòng lặp Đương nhiên biến x cục cấp phát vùng nhớ có địa khác với biến x ngồi vịng lặp, riêng với firstprivate (x), biến x cục khởi tạo giá trị ban đầu biến x bên ngồi vịng lặp thông qua biến trung gian x Ngược lại, lastprivate(x) giá trị biến x cần lưu giữ sau kết thúc vịng lặp thơng qua biên trung gian x , đồng thời cần lấy giá trị x Pi có cập nhật cuối mơ dịng cột Hình Trong trình CAPE thực tạo ảnh vùng nhớ có thay đổi gửi master vùng nhớ biến x cục ghi nhận khác địa với vùng nhớ biến x bên ngồi vịng lặp nên không ảnh hưởng đến giá trị x ngồi vịng lặp, tương ứng thỏa mãn trường hợp 2.1 Đối với mệnh đề copyin(x), copyprivate(x), dòng Hình sử dụng hàm broadcast(x) để cập nhật giá trị x đến Pi Các Pi nhận giá trị x tích hợp vào khơng gian nhớ để tiếp tục thực phần cịn lại chương trình Trong trình chạy chương trình P i có thực cập nhật giá trị biến x ghi nhận ảnh chụp vùng nhớ P i, đồng thời gửi đến master tập hợp theo kịch trường hợp 2.1 thỏa mãn giả thiết Như với trường hợp 2.2: có trường hợp mệnh đề reduction cần phải tổ chức xử lý riêng hàm mới, mệnh đề, thị chia sẻ khác dẫn trường hợp 2.1 thỏa mãn giả thiết Về cài đặt chương trình CAPE thực mệnh đề, dẫn chia sẻ liệu OpenMP hệ thống nhớ phân tán, nhóm nghiên cứu cài đặt thành công mệnh đề threadprivate(x), private(x), firstprivate(x), lastprivate(x)với kết chạy chương trình giống với chương trình gốc OpenMP Các mệnh đề copyin(x), copyprivate(x), reduction tiếp tục cài đặt thử nghiệm Kết thử nghiệm công bố thời gian gần VI KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO Bài báo đề xuất giải pháp để xử lý mệnh đề chia sẻ liệu OpenMP hệ thống nhớ phân tán tảng CAPE Qua phân tích, CAPE xử lý tất mệnh đề liệu chia sẻ OpenMP với ưu điểm: Thứ nhất, người lập trình khơng u cầu phải tự tổ chức gửi nhận đồng liệu đoạn chương trình song song Thứ hai, số nút xử lý song song tăng giảm linh động theo nhu cầu (khơng có giới hạn số lượng checkpoint gửi master) Hiện nay, chúng tơi thực thử nghiệm chương trình OpenMP có đoạn xử lý song song thỏa mãn với điều kiện Bernstein cho kết gần tương đương với MPI [12], [13], tảng lập trình song song hệ thống phân tán nhanh Các đề xuất giải pháp xử lý biến chia sẻ OpenMP qua CAPE báo cần phải cài đặt thử nghiệm bài toán mẫu Đồng thời, chúng tơi tiếp tục tối ưu hóa phát triển CAPE để xử lý toàn mệnh đề dẫn xử lý song song OpenMP với hiệu suất cao cách tối ưu kích thước checkpoint, tăng khả khai thác cấu trúc đa lõi máy tính hệ thống Đỗ Xuân Huyền, Hà Viết Hải, Trần Văn Long 583 TÀI LIỆU THAM KHẢO [1] OpenMP Architecture Review Board, OpenMP content/uploads/OpenMP-API-Specification-5.0.pdf, 2018 specification 5.0, https://www.openmp.org/wp- [2] D Margery, G Vallée, R Lottiaux, C Morin, J Berthou, “Kerrighed: A SSI Cluster OS Running OpenMP”, EWOMP 2003, Fifth European Workshop on OpenMP, 2003 [3] M Sato, H Harada, A Hasegawa and Y Ishikaw, “Cluster-enabled OpenMP: An OpenMP compiler for the SCASH software dis-tributed shared memory system”, Journal Scientific Programming, Volume Issue 2,3, 2001 [4] J Tao, W Karl, C Trinitis, “Implementing an OpenMP Execution Environment on InfiniBand Clusters”, In proceeding of the First International Workshop on OpenMP (IWOMP 2005) Eugene, Oregon, 2005 [5] A Saa-Garriga, D Castells-Rufas, J Carrabina, “OMP2MPI: Automatic MPI code generation from OpenMP programs”, Proceedings of the Workshop on High Performance Energy Efficient Embedded Systems (HIP3ES) 2015 Amsterdam, January 21st Collocated with HIPEAC 2015 Conference, 2015 [6] Jacob A.C et al, “Exploiting Fine- and Coarse-Grained Parallelism Using a Directive Based Approach”, OpenMP: Heterogenous Execution and Data Movements Lecture Notes in Computer Science, vol 9342 Springer, Cham, pp 30-41, 2015, [7] L Huang and B Chapman and Z Liu, “Towards a more efficient implementation of OpenMP for clusters via translation to Global Arrays”, Journal of Parallel Computing 31, pp 1114–1139, 2005 [8] Viet Hai Ha and Éric Renault, “Improving Performance of CAPE using Discontinuous Incremental Checkpointing”, Proceedings of the IEEE International Conference on High Performance and Communications 2011 (HPCC-2011) Banff, Canada, September 2011 [9] Éric Renault, “Toward a distributed implementation of openMP using CAPE”, Parallel Computing Technologies: 9th International Conference, PaCT 2007 [10] OpenMP Architecture Review Board, OpenMP Application Program Interface v4.5, Technical Report https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf, pp 17, 2015 [11] Viet Hai Ha, Eric Renault, “Discontinuous Incremental: A New Approach Towards Extremely Checkpoint”, Proceedings of IEEE International Symposium on Computer Networks and Distributed System (CNDS2011), Tehran, Iran, February 2011 [12] Ha, Viet Hai and Renault Eric, “Design and performance analysis of CAPE based on discontinuous incremental checkpoints”, IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, IEEE, pp 862-867, 2011 [13] Van Long Tran, Eric Renault and Viet Hai Ha, “Analysis and evaluation of the performance of CAPE, IEEE Conferences on Ubiquitous Intelligence & Computing”, Advanced and Trusted Computing, Scalable Computing and Communications, Cloud and Big Data Computing, Internet of People, and Smart World Congress, IEEE, pp 620–627, 2016 [14] Viet Hai Ha, Eric Renault, “Improving performance of CAPE using discontinuous incremental checkpointing”, High Performance Computing and Communications (HPCC), IEEE, pp 802–807, 2011 [15] James S.Plank, “An Overview of Checkpointing in Uniprocessor and Distributed Systems”, Focusing on Implementation and Performance, Technical Report UT-CS-97-372, University of Tennessee,1997 [16] Viet Hai Ha, Eric Renault, “Design of a Shared-Memory Model for CAPE”, International Workshop on OpenMP, IWOMP 2012: OpenMP in a Heterogeneous World pp 262-266, 2012 PROCESSING SHARED DATA CLAUSES OF OPENMP ON THE DISTRIBUTED MEMORY SYSTEMS Do Xuan Huyen, Ha Viet Hai, Tran Van Long ABSTRACT: CAPE is an approach for installing OpenMP - the standard programming interface (API) for parallel programming on shared memory systems - on distributed memory systems The first versions of CAPE were built and tested, evaluated with the ability to provide performance comparable to MPI's performance - the tool capable of providing the highest performance on distributed systems However, these versions have not dealt with OpenMP shared data problems, so their interfaces have not been fully installed This paper presents propositions for processing the shared data clauses by adding specialized processing statements to the CAPE transformation prototypes for OpenMP's parallel structures ... enter_block, exit_block after_block để xử lý với mệnh đề chia sẻ liệu clause_U hình 580 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN Hình Khn dạng tổng qt việc... master sau nhận ảnh nhớ Pi gộp lại vào vùng nhớ trước gửi 582 XỬ LÝ CÁC MỆNH ĐỀ VỀ DỮ LIỆU CHIA SẺ CỦA OPENMP TRÊN CÁC HỆ THỐNG SỬ DỤNG BỘ NHỚ PHÂN TÁN ảnh nhớ đến Pi cho đoạn mã xử lý song song Theo... hình chia sẻ liệu OpenMP hệ thống sử dụng nhớ chia sẻ hệ thống sử dụng nhớ phân tán OpenMP sử dụng mơ hình thực đa luồng để vận hành cấu trúc song song OpenMP, luồng chia sẻ khơng gian nhớ chung

Ngày đăng: 30/09/2021, 16:11

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w