Tải bản đầy đủ (.pdf) (6 trang)

SỬ DỤNG TÍNH TOÁN SONG SONG MCNP5 TRONG mô PHỎNG PHÂN bố LIỀU TIA x

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 (941.9 KB, 6 trang )

Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM

II-P-1.12
SỬ DỤNG TÍNH TOÁN SONG SONG MCNP5 TRONG MÔ PHỎNG PHÂN BỐ LIỀU TIA X
Trần Ái Khanh1,2, Đặng Nguyên Phương3, Trương Thị Hồng Loan2, Mai Văn Nhơn2
Khoa Khoa học Cơ bản, Đại học Tiền Giang
Khoa Vật lý & Vật lý Kĩ thuật – Truờng Đại học Khoa học Tự nhiên, ĐHQG-HCM
3
Viện Vật lý, Đại học Freiburg, CHLB Đức
1

2

TÓM TẮT
Chương trình MCNP5 là một trong những chương trình tính toán phổ biến để giải quyết các bài
toán tính liều trong y học hạt nhân. Tuy nhiên, đối với việc tính toán che chắn tối ưu bằng chương
trình MCNP5 trên từng máy tính đơn mất khá nhiều thời gian. Điều này sẽ làm hạn chế khả năng tính
toán và cho kết quả thống kê thấp. Trên thực tế, phương pháp Monte Carlo được sử dụng trong
chương trình MCNP5 có thể được song song hóa, bởi vì mỗi lịch sử hạt được theo dõi riêng lẻ trong
một tiến trình độc lập. Tuy nhiên, có nhiều vấn đề cần phải được xử lý nhằm đạt được môt mức độ
song song hợp lý. Trong công trình này, nhóm tác giả tiến hành tìm hiểu khả năng song song hóa của
chương trình MCNP5. Ngoài ra, với một bài toán mẫu nghiên cứu phân bố liều của máy X quang chẩn
đoán, nhóm tác giả tiến hành tính toán song song trên máy tính đa lõi từ đó đánh giá tốc độ tính toán
khi tiến hành bài toán với nhiều bộ xử lý.
Từ khóa: tính toán song song, MCNP5.
MỞ ĐẦU
Trong quá trình nghiên cứu phân bố liều, che chắn an toàn bức xạ trong y học hạt nhân, các tác giả đã và
đang sử dụng một chương trình mô phỏng vận chuyển hạt bằng phương pháp Monte Carlo có tên gọi MCNP5
[1]. Đây là một chương trình mô phỏng đa mục đích, có thể mô phỏng vận chuyển hạt trong một không gian hình
học phức tạp. Tuy nhiên, đối với một số bài toán lớn, có cấu hình phức tạp, phương pháp mô phỏng Monte
Carlo, cụ thể là chương trình MCNP5 có một bất lợi lớn đó chính là thời gian tính toán quá dài. Do đó việc


nghiên cứu cải tiến chương trình mô phỏng nhằm đạt được tốc độ tính toán tốt hơn là một việc hết sức cần thiết
để có thể nâng cao hiệu quả tính toán của chương trình đồng thời cung cấp các kết quả có độ chính xác thống kê
cao. Để làm được điều đó, bên cạnh việc sử dụng các phương pháp giảm phương sai đã được xây dựng sẵn trong
chương trình, chúng ta có thể sử dụng kĩ thuật tính toán song song (parallel computing). Kĩ thuật này thường
được áp dụng nhằm giải quyết các bài toán lớn có cấu hình phức tạp hoặc làm giảm thời gian thực thi chương
trình. Việc nghiên cứu áp dụng tính toán song song vào trong chương trình MCNP cũng đã được thực hiện với
một số công trình trước đó [2,3] nhưng chủ yếu cho tính toán mô phỏng lò phản ứng.
Trong công trình này, nhóm tác giả đã tiến hành các nghiên cứu bước đầu nhằm tìm hiểu khả năng song
song hóa chương trình MCNP5 và đánh giá tốc độ thực hiện tính toán khi chạy đồng thời với nhiều bộ xử lý.
Theo đó, chương trình MCNP5 sẽ được song song hóa theo cơ chế trao đổi thông điệp (message passing) sử
dụng thư viện theo chuẩn MPI với mục đích nhắm tới việc thực thi chương trình MCNP5 trên một hệ thống cụm
máy tính (computer cluster) giúp nâng cao hiệu năng tính toán. Bước đầu, chương trình MCNP5 được biên dịch
với thư viện MPICH2 trên hệ điều hành Linux. Sau đó, chương trình sẽ được kiểm tra, đánh giá dựa trên việc mô
phỏng một bài toán mẫu tính liều với một máy tính đơn lõi kép để đánh giá tính khả dụng của việc song song hóa
trước khi xây dựng cụm máy tính phục vụ cho việc tính toán mô phỏng trong tương lai.
SONG SONG HÓA CHƯƠNG TRÌNH MCNP5
Mô hình tính toán song song
Thông thường hiện nay, hầu hết các chương trình tính toán đều được thiết kế để chạy trên đơn lõi (core),
đó là cách tính toán tuần tự (serial computation). Để có thể chạy được chương trình một cách hiệu quả trên các
hệ thống máy tính hoặc các CPU đa lõi, chúng ta cần phải tiến hành song song hóa chương trình đó. Quá trình
song song hóa bao gồm việc thiết kế, lập trình sao cho chương trình có thể chạy được trên các hệ thống máy tính
song song. Nguyên tắc của tính toán song song là phân chia bài toán ra thành các công việc (bài toán) con nhỏ
hơn rồi phân chia các công việc đó đến từng bộ xử lý (processor) và thu thập, đồng bộ các kết quả từ các bộ xử
lý để đưa ra được kết quả cuối cùng. Ưu điểm của cách tính toán này chính là khả năng xử lý nhiều tác vụ cùng
một lúc. Việc lập trình song song có thể được thực hiện thông qua việc sử dụng các hàm thư viện (ví dụ: mpi.h)
hoặc các đặc tính đã được tích hợp trong các chương trình biên dịch song song dữ liệu, chẳng hạn như OpenMP
trong các trình biên dịch fortran F90, F95.
Hiện nay, có rất nhiều các loại mô hình tính toán song song khác nhau. Các loại mô hình này được phân
chia dựa theo hai tiêu chí là tương tác giữa các tiến trình (process interaction) và cách thức xử lý bài toán
ISBN: 978-604-82-1375-6


175


Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
(problem decomposition). Theo tiêu chí thứ nhất, chúng ta có hai loại mô hình song song chủ yếu là mô hình
dùng bộ nhớ chia sẻ (shared memory) hoặc truyền thông điệp (message passing). Theo tiêu chí thứ hai, chúng ta
cũng có hai loại mô hình là song song hóa tác vụ (task parallelism) và song song hóa dữ liệu (data parallelism).


Với mô hình bộ nhớ chia sẻ, tất cả các xử lý đều truy cập một dữ liệu chung thông qua một vùng nhớ
dùng chung.



Với mô hình truyền thông điệp thì mỗi xử lý đều có riêng một bộ nhớ cục bộ của nó, các xử lý trao
đổi dữ liệu với nhau thông qua hai phương thức gửi và nhận thông điệp.



Song song tác vụ là phương thức phân chia các tác vụ khác nhau đến các nút tính toán khac nhau, dữ
liệu được sử dụng bởi các tác vụ có thể hoàn toàn giống nhau.



Song song dữ liệu là phương thức phân phối dữ liệu tới các nút tính toán khác nhau để được xử lý
đồng thời, các tác vụ tại các nút tính toán có thể hoàn toàn giống nhau.
MPICH2
Mô hình truyền thông điệp là một trong những mô hình lâu đời nhất và được ứng dụng rộng rãi nhất trong
lập trình song song. Hai bộ công cụ phổ biến nhất cho lập trình song song theo mô hình này là PVM (Parallel

Virtual Machine) và MPI (Message Passing Interface). Các bộ công cụ này cung cấp các hàm dùng cho việc trao
đổi thông tin giữa các tiến trình tính toán trong hệ thống máy tính song song.
MPI là một chuẩn mô tả các đặc điểm và cú pháp của một thư viện lập trình song song, được đưa ra vào
năm 1994 bởi MPIF (Message Passing Interface Forum), và được nâng cấp lên chuẩn MPI-2 từ năm 2001. Có
rất nhiều các thư viện dựa trên chuẩn MPI này chẳng hạn như MPICH hay LAM/MPI.
MPICH2 [4] là một thư viện miễn phí bao gồm các hàm theo chuẩn MPI dùng cho lập trình song song theo
phương thức truyền thông điệp, có thể được tải tại địa chỉ . MPICH2 được thiết kế cho
nhiều ngôn ngữ lập trình khác nhau (C++, Fortran, Python,…) và có thể sử dụng trên nhiều loại hệ điều hành
(Windows, Linux, MacOS,…). Do phần lớn chương trình MCNP5 được xây dựng bằng ngôn ngữ lập trình
Fortran (F90) và C++ nên chúng ta sẽ sử dụng MPICH2 để biên dịch song song MCNP5, trình biên dịch được sử
dụng ở đây là mpif90 và mpicc trên nền hệ điều hành Linux Ubuntu 10.04.
Chương trình MCNP5
Chương trình MCNP5 là chương trình ứng dụng phương pháp Monte Carlo để mô phỏng các quá trình vật
lí hạt nhân đối với neutron, photon, electron (các quá trình phân rã hạt nhân, tương tác giữa các tia bức xạ với vật
chất, thông lượng neutron,...). Chương trình ban đầu được phát triển bởi nhóm Monte Carlo và hiện nay là nhóm
Transport Methods Group (nhóm XTM) của phòng Applied Theoretical & Computational Physics Division (X
Division) ở Trung tâm thí nghiệm quốc gia Los Alamos (Los Alamos National Laboratory – Mỹ). Phiên bản
được sử dụng trong nghiên cứu này là phiên bản MCNP5 được ra đời từ năm 2003.
Đây là một công cụ tính toán rất mạnh, có thể mô phỏng vận chuyển neutron, photon và electron, và giải
các bài toán vận chuyển bức xạ 3 chiều, phụ thuộc thời gian, năng lượng liên tục trong các lĩnh vực từ thiết kế lò
phản ứng đến bảo vệ bức xạ và vật lý y học với các miền năng lượng neutron từ 10-11 MeV đến 20 MeV và các
miền năng lượng photon và electron từ 1 keV đến 1000 MeV. Chương trình này là công cụ mô phỏng được thiết
lập rất tốt cho phép người sử dụng xây dựng các dạng hình học phức tạp và mô phỏng dựa trên các thư viện hạt
nhân. Sự phức tạp của tương tác photon cũng được xử lý trong chương trình MCNP. Chương trình điều khiển
các quá trình này bằng cách gieo số theo quy luật thống kê cho trước và mô phỏng được thực hiện trên máy tính
vì số lần thử cần thiết thường rất lớn.
Cách thức tính toán song song trong MCNP5
Với việc sử dụng phương thức lập trình song song truyền thông điệp trong MCNP5, các xử lý trong
chương trình này được thực hiện với mô hình master/slave. Trong mô hình này, có hai loại tác vụ:



Tác vụ chính (master task): điều khiển, phân phối tác vụ cho các máy con (slave), thu nhận và tổng
hợp các kết quả tally thu về từ các máy con.



Tác vụ con (slave task): chạy các lịch sử hạt, mô phỏng tương tác, tính toán và lưu trữ kết quả vào
trong bộ nhớ riêng, khi hoàn thành gửi kết quả về cho máy chủ (master).



Hình 1 trình bày giản đồ sơ lược các tương tác giữa máy chủ và các máy con trong quá trình mô
phỏng MCNP5. Cụ thể hơn, các bước tiến hành gồm có:



Bước 1: Khởi đầu máy chủ gửi các thông tin bài toán (các thông số hình học, vật liệu, nguồn phát,
tally,...) cho các máy con.



Bước 2: Các máy con (giả sử máy chủ phân chia tác vụ cho N máy con):
 Thực hiện tính toán 1/N tổng số lịch sử hạt (trong trường hợp có sử dụng kết hợp OpenMP để
song song hóa theo phương thức chia sẻ bộ nhớ thì mỗi máy con sẽ tiếp tục phân chia ra thêm các
tiến trình tương ứng).

ISBN: 978-604-82-1375-6

176



Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM



Ghi nhận kết quả vào bộ nhớ riêng.
Sau khi hoàn thành, gửi trả kết quả về cho máy chủ.

 Bước 3: Tổng hợp kết quả: máy chủ tổng hợp các kết quả được gửi từ các máy con và xuất dữ liệu ra file
kết quả.

Hình 1. Mô hình tính toán song song của chương trình MCNP5
BÀI TOÁN MẪU VÀ KẾT QUẢ SONG SONG HÓA MCNP5
Bài toán mô phỏng phân bố liều từ máy X quang
Trong công trình này, để khảo sát khả năng tính toán song song của chương trình MCNP5, chúng tôi thực
hiện chạy một bài toán mẫu bằng cả hai cách thức chạy tuần tự và song song. Bài toán mẫu này là bài toán mô
phỏng phân bố liều của chùm tia phát ra từ một máy X quang. Máy X quang được sử dụng trong mô phỏng là
máy X quang thường quy nhãn hiệu RADspeedM của hãng Shimadzu, Nhật Bản được khảo sát là loại X quang
thường quy có anode xoay. Trường chiếu 35×35cm2 tại khoảng cách 65cm tính từ tâm bóng, điện thế cực đại
150 kV, dòng cực đại 5,6A. Anode nghiêng 160, vật liệu dùng làm anode là hợp chất của Vonfram – Rheni với
bề dày khoảng 1,3mm, tiếp theo là lớp Molybden dày 5-11mm. Bộ lọc gồm bộ lọc sẵn có (inherent filter) có bề
dày tương đương 1mm Al và bộ lọc bổ sung (additional filter) có bề dày tương đương 0,4mm Al. Collimator R20J được sử dụng gồm 3 lớp chì có bề dày tổng cộng là 8mm. Lớp chì thứ nhất (inner leaf) gồm 4 lá chì cố định
có vai trò làm giảm bức xạ off focus, lớp chì thứ hai (middle leaf) gồm 4 lá chì di động dày 2mm đóng vai trò
loại bỏ các bức xạ rò rỉ. Lớp chì thứ 3 (front leaf) gồm 4 lá chì dày 3mm, nằm mặt dưới collimator đóng vai trò
chính trong việc xác định trường chiếu. Việc mô phỏng tia X phát ra khi một lượng lớn electron đến anode,
tương tác với nguyên tử và phát ra tia X. Nguồn electron phát trong mô phỏng là nguồn phẳng, năng lượng
không đổi 120keV, số hạt phát ra từ nguồn là 100 triệu hạt. Hình 2 trình bày sơ đồ cấu tạo của đầu máy X quang
được sử dụng trong mô phỏng MCNP5.

Hình 2. Sơ đồ cấu tạo đầu máy X-quang (bên trái) và mô hình được vẽ bằng MCNP5 (bên phải)


ISBN: 978-604-82-1375-6

177


Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Cấu hình máy tính
Với sự phát triển của công nghệ máy tính, đặc biệt là công nghệ chế tạo CPU đa lõi hiện nay, việc tính toán
song song không còn chỉ được thực hiện với các hệ máy tính mà còn có thể được thực hiện trên các máy tính
đơn. Trong công trình này, việc mô phỏng được thực hiện trên máy tính đơn có cấu hình chính như sau:
 Intel Core I7-4770 (3,4GHz)
 6GB RAM
 Ổ cứng 250GB
 Ethernet card 10/100 Mbps
Kết quả so sánh giữa phương pháp tuần tự và song song
Bảng 1 trình bày các thời gian tính toán (tính bằng phút) giữa việc mô phỏng MCNP5 theo phương pháp
tuần tự và song song với số lượng các tiến trình Nproc từ 1 đến 20. Từ bảng này, ta có thể thấy được khi chuyển
từ tính toán tuần tự sang song song thời gian chạy chương trình có giảm xuống (từ 731,1 phút xuống 256,4 phút).
Khi tăng số lượng tiến trình, thời gian chạy chương trình giảm gần như tuyến tính, và khi số lượng tiến trình từ
Nproc = 10 trở lên thời gian chạy chương trình bão hòa và dừng lại ở thời gian chạy trung bình khoảng 156,7
phút. Sự so sánh giữa tốc độ tính toán trong thực tế so với trường hợp lý tưởng với cấu hình máy sử dụng CPU 4
lõi (4 bộ vi xử lý trung tâm) như được miêu tả trong Phần 3.2 được thể hiện trong Hình 3. Chúng ta có thể thấy
tốc độ tính toán trong thực tế tăng chậm hơn so với trường hợp lý tưởng. Tuy nhiên, với số lượng tiến trình từ 8
trở lên (gấp đôi số lượng bộ xử lý được sử dụng) thì tốc độ tính toán thực tế cũng gần đạt được như lý tưởng.
Bảng 1. Thời gian chạy chương trình MCNP5 với số lượng tiến trình được sử dụng
Số lượng tiến trình

Thời gian chạy (phút)


Số lượng tiến trình

Thời gian chạy (phút)

1 (tuần tự)

731.1

10

162.1

2

730.8

11

158.4

4

256.4

12

157.4

5


233.1

13

156.1

6

202.5

14

156.1

7

180.7

15

155.8

8

164.4

17

154.3


9

162.4

20

153.5

ISBN: 978-604-82-1375-6

178


Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM

12000

Tốc độ (lịch sử hạt/giây)

10000

Thực tế
Lý…

8000
6000
4000
2000
0
1


2

4

5

6

7

8

9
10 11
Số tiến trình

12

13

14

15

17

20

Hình 3. Tốc độ tính toán của MCNP5 trong thực tế so với lý tưởng trong trường hợp có 2 bộ xử lý

KẾT LUẬN
Trong công trình này, các tác giả đã tiến hành song song hóa chương trình MCNP5 để có thể tăng tốc độ
tính toán trong quá trình mô phỏng các bài toán y học hạt nhân vốn đòi hỏi thời gian chạy chương trình rất dài để
có thể đạt được kết quả có thống kê tốt. Sau khi đã được song song hóa, chương trình MCNP5 được kiểm tra với
một máy tính 4 lõi (4 bộ xử lý). Một bài toán mẫu tính toán phân bố liều bởi chùm tia phát ra từ máy X quang đã
được sử dụng để kiểm tra tốc độ tính toán của MCNP5 với số lượng các tiến trình khác nhau và so sánh với
trường hợp lý tưởng. Kết quả cho thấy tốc độ tính toán thực tế tăng chậm hơn so với trường hợp lý tưởng và đạt
giá trị bão hòa với số lượng tiến trình từ 8 trở lên.
Các kết quả thu được trong công trình cho thấy khả năng ứng dụng của phương thức tính toán song song
vào trong mô phỏng MCNP5 nhằm giúp tiết kiệm thời gian tính toán. Trong tương lai, một hệ máy tính dạng
Beowulf sẽ được xây dựng tại Đại học Tiền Giang với số lượng khoảng 10 – 20 bộ xử lý sẽ giúp cho việc tính
toán đạt hiệu năng cao hơn. Ngoài ra, các điều kiện tối ưu (chẳng hạn như khả năng cân bằng tải) giúp cho việc
mô phỏng đạt tốc độ tốt nhất cũng sẽ được nghiên cứu.

PROCESS PARALLELIZATION USING MCNP5 CODE IN SIMULATING X-RAY DOSE
DISTRIBUTION
Tran Ai Khanh1,2, Dang Nguyen Phuong3, Truong Thi Hong Loan2, Mai Van Nhon2
1

2

Faculty of Basic Sciences, Tien Giang University,
Faculty of Physics-Engineering Physics, University of Science, VNU-HCM,
3
Institute of Physics, University of Freiburg, Federal Republic of Germany.

ABSTRACT
MCNP5 is one of the most popular simulation programs for medical physics calculation.
However, shielding calculation by using MCNP5 on single processor will cost us lot of time. This issue
will limit our calculation and give low statistics results. In fact, the Monte Carlo approach embedded

within MCNP is inherently parallel because each particle history can be tracked individually with an
independent processor. However there are many problems that must be resolved to achieve a
reasonable level of parallelization. In this paper, the authors conducted to parallelize the MCNP5
code. A sample problem of dose distribution calculation was used to test the performance of parallel
computing on multi-core computers and evaluate the running speed with different numbers of
processing elements.
Key word: parallelization, MCNP5
TÀI LIỆU THAM KHẢO
[1]. X-5 Monte Carlo Team, MCNP — A General Monte Carlo N-Particle Transport Code, Version 5, Los
Alamos National Laboratory, 2003.
ISBN: 978-604-82-1375-6

179


Báo cáo toàn văn Kỷ yếu hội nghị khoa học lần IX Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
[2].

[3].
[4].

Li Deng, Zhong-Sheng Xiep, Parallelization of MCNP Monte Carlo Neutron and Photon Transport
Code in Parallel Virtual Machine and Message Passing Interface, Journal of Nuclear Science and
Technology, 1999.
A. Serikov, U. Fischer, D. Grosse, High Performance Parallel Monte Carlo Transport Computation for
ITER Fusion Neutronics Applications, Progress in Nuclear Science and Technology, 2011.
W. Gropp et al, MPICH2 User’s Guide, Argonne National Laboratory, 2007.

ISBN: 978-604-82-1375-6


180



×