计算物理已经成为物理学的一个重要分支,经常需要对海量的数据进行复杂的计算。在普通的计算机上研究人员很难通过简单的计算公式对复杂运动进行建模,而精确地模拟却由于巨大的计算量而无法实现。计算机业界正处于并行计算的革命中,强大并且低成本的GPU集群计算能力使得研究者们能够进行快速的实验。
CUDA介绍
CUDA(Compute Unified Device Architecture,统一计算设备架构)是一种由NVIDIA公司推出的处理和管理GPU并行计算的硬件和软件的架构。它绕过了图形流水线,直接对GPU的硬件核心做了一层多线程封装,根据其提供的多线程并行编程接口可以很有效地进行多线程编程,开发线程级并行性。这种新型的GPU编程模型语法是对C语言的一个极小扩展,添加了一些使用GPU 硬件特性的专有指令,使得GPU能够更有效地用于通用计算。
SRIM介绍
SRIM(the stopping and range of ions into matter)系列软件基于Monte Carlo方法,是目前国际上通用的计算带电粒子在靶材料中入射和能量传递的计算机程序。其原名为TRIM(the Transport of Ions in Matter)1985年由J. F. Ziegler J. P. Biersack和U.littmark编写,主要计算入射粒子在物质中的能损,射程等。以后在此基础上不断升级完善,并于1991年更名为SRIM。
SRIM对入射原子在靶中的运动分析采用连续慢化假设:
1.入射原子与材料靶原子核的碰撞采用两体弹性碰撞来描述, 这一部分主要导致入射原子运动轨迹的偏折, 能量损失来自弹性碰撞的能量损失部分。
2.两次碰撞之间的距离以及碰撞后的参数通过随机抽样得到。
3.在两次碰撞之间,认为入射原子与材料中的电子作用,连续均匀地损失能量。
粒子的位置、能量损失以及次级粒子的各种参数都在整个跟踪过程中存储下来,最后得到各种所需物理量的期望值和相应的统计误差。
SRIM并行化中的一些技术
并行的基本思想一般有两种:功能并行和数据并行。功能并行是不相关的任务对数据集的不同元素进行不同的操作,而数据并行是不相关的任务对数据集的不同元素进行相同的操作。为了实现入射粒子在物质中运动的高性能模拟,根据SRIM的特点我们对其进行了数据并行。下面以SRIM为物理背景主要介绍采用CUDA并行化时遇到的一些技术问题。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。