CN105608341A - 基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 - Google Patents
基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 Download PDFInfo
- Publication number
- CN105608341A CN105608341A CN201510960149.9A CN201510960149A CN105608341A CN 105608341 A CN105608341 A CN 105608341A CN 201510960149 A CN201510960149 A CN 201510960149A CN 105608341 A CN105608341 A CN 105608341A
- Authority
- CN
- China
- Prior art keywords
- group
- ngroups
- nprocs
- group leader
- screening
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B15/00—ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
Landscapes
- Spectroscopy & Molecular Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Biotechnology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Crystallography & Structural Chemistry (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Theoretical Computer Science (AREA)
- Investigating Or Analysing Biological Materials (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,目的是提高药物虚拟筛选的速度和效率,缩短新药研究周期。技术方案是进程分组,任务分为两大部分,第一部分采用静态任务划分,由各组长进程以轮转方式获取筛选作业,分发给组员进程;第二部分采用动态任务划分,采用进程分组的方式,以“能者多劳”的原则,由各组组长动态获取筛选作业,分配给组员;组员进程第一次处理筛选作业时,根据进程编号睡眠一定时间,实现“流水线式”IO和通信隐藏。本发明相比于目前主流高通量药物虚拟筛选方法,能够有效实现高通量药物虚拟筛选的负载均衡,并解决海量并发IO、通信问题,提高药物虚拟筛选的速度和效率,缩短新药研究周期。
Description
技术领域
本发明涉及计算机辅助药物设计领域药物虚拟筛选方法,尤其指一种基于动态数据划分和冲突消解的高通量药物虚拟筛选方法。
背景技术
药物虚拟筛选是在计算机的帮助下,使用分子对接方法,根据小分子与蛋白结合能力判断小分子活性。高通量药物虚拟筛选(HighThroughputVirtualScreening)是在短时间内,采用分子对接技术,根据药物作用靶标的分子结构,通过分子模拟手段计算化合物库中的小分子与靶标结合的能力,预测候选化合物的生理活性。高通量药物虚拟筛选具有一定特点,主要包括:
1.存在一个总作业池,或者是作业列表,各组员进程从作业池中获取作业,并行计算,因此需要合理的数据划分方式,来达到负载均衡;
2.单个筛选作业计算时间不尽相同,同样带来负载均衡问题;
3.筛选作业之间相互独立,具有天然的并行性,而各进程之间不需要大量交换数据和状态,因此整个系统是非同步式的;
4.单个作业需要一定量IO,数以万计的组员进程需要超高量的IO,因此应用可能会存在IO瓶颈;
5.数万进程之间的通信,如果是平摊在整个运行过程是可以接受的,但是如果瞬时发生,会阻塞系统的通信网络。
目前主流高通量药物虚拟筛选方法采用单层主从模式进行数据划分和作业调度,其主要步骤如下:
步骤1:主进程从作业池中顺序读取筛选作业,以轮转方式发送给多个子进程,确保每一个子进程处于满负荷状态;
步骤2:子进程接收作业,进行计算;
步骤3:子进程计算结束,给主进程发送消息;
步骤4:主进程接收来自子进程的消息,随后读取新作业发送给该子进程;
步骤5:步骤2-步骤4不断循环,直到所有作业计算结束。
首先进行虚拟筛选的小分子结构不同,计算时间不同,以简单的静态数据划分会造成进程间负载不均衡;使用普通轮转方式分配任务,随着并行规模不断扩大,通信速度下降,作业分配可能出现较大延迟,降低并行效率。以上两点使得当前的高通量药物虚拟筛选难以达到负载均衡。
目前主流高通量药物虚拟筛选方法在充分利用集群、超级计算机计算能力、可扩展性等方面还具有许多难点,原因有多重因素。首先是虚拟筛选作业数量的庞大,药物虚拟筛选候选化合物有3500万。其次是庞大的作业量带来的存储压力,药物虚拟筛选的候选化合物以小文件的形式存在,数十亿计的小文件给文件系统极大压力。然后是在数千节点上,部署使用高通量药物虚拟筛选软件时,瞬时IO、通信操作,很可能会超越超级计算机的IO、通信带宽,因此造成IO管道堵塞,造成通信瓶颈,导致当前主流高通量虚拟筛选方法在进行药物虚拟筛选时速度缓慢、新药研制周期过长。
集群、超级计算机的发展,多节点多核以及异构体系,高速互联网络的出现给解决高通量药物虚拟筛选的可扩展性问题提供了强大的计算能力基础。为了充分利用这些计算资源,高通量药物虚拟筛选必须有一个高效可扩展的并行计算方法,达到负载均衡,并规避IO、通信的瓶颈,加速高通量药物虚拟筛选的速度和效率,缩短新药研究周期。
发明内容
针对目前主流高通量药物虚拟筛选方法存在负载不均衡、瞬时IO、通信操作造成通信瓶颈,导致当前主流高通量虚拟筛选方法在进行药物虚拟筛选时速度缓慢的问题,本发明提供一种基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,目的是实现高通量药物虚拟筛选的负载均衡,并解决海量并发IO、通信问题,提高药物虚拟筛选的速度和效率,缩短新药研究周期。
本发明技术方案是:进程分组,任务分为两大部分,第一部分采用静态任务划分,由各组长进程以轮转方式获取筛选作业,分发给组员,即组员进程;第二部分采用动态任务划分,采用进程分组的方式,以“能者多劳”的原则,由各组组长动态获取筛选作业,分配给组员;组员进程第一次处理筛选作业时,根据进程编号睡眠一定时间,实现“流水线式”IO和通信隐藏。
具体技术方案如下:
主要变量定义:
NJOBS:待处理筛选作业总数量,NJOBS为大于1的整数;
FIRST_PROPORTION:第一阶段所处理筛选作业比例,FIRST_PROPORTION为实数,0<FIRST_PROPORTION<1;
FIRST_NJOBS:第一阶段处理筛选作业数量,FIRST_NJOBS为大于1的整数,FIRST_NJOBS=NJOBS*FIRST_PROPORTION;
NPROCS:总进程数,NPROCS为自然数;
JobNo:筛选作业编号,JobNo为整数,0≤JobNo≤NJOBS-1;
NGROUPS:进程组数,NPROCS个进程被划分成NGROUPS组进程,记为第0进程组,…,第i进程组,…,第(NGROUPS-1)进程组;指定0到NGROUPS-1号进程为组长进程,每个组长进程中,声明一个数组ProGI,数组大小为NPROCS/NGROUPS,以轮转算法将进程分组,第i进程组的第j个组员进程的进程编号ProcessID为ProGI[j]=i+j*NGROUPS,0≤i≤NGROUPS-1,1≤j≤(NPROCS/NGROUPS-1),i、j均为整数;NGROUPS为整数,1≤NGROUPS<NPROCS,要求NPROCS%NGROUPS=0,其中%为求余操作符,NPROCS%NGROUPS=0即为总进程数可以被进程组数整除;
GROUPID:进程组编号,GROUPID为整数,GROUPID=0,1,…,NGROUPS-1,其中/为除操作;
ProcessID:进程编号,ProcessID为整数,ProcessID=0,1,…,NPROCS-1;
SGSIZE:睡眠组大小,SGSIZE为整数,0≤SGSIZE≤NPROCS;当进程执行首次计算时,休眠进程,即执行sleep((ProcessID/SGSIZE)*T),sleep为进程休眠操作,(ProcessID/SGSIZE)*T为休眠时间;
JobCurPos:当前待处理筛选作业首位置,JobCurPos为整数,0≤JobCurPos<NJOBS;
T:睡眠时间,T为大于0的整数,单位为秒。
本发明基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,流程如下:
步骤1:初始化。根据参数输入或者配置文件获取初始参数:NJOBS、FIRST_PROPORTION、NPROCS、NGROUPS、SGSIZE、T,计算得到第一阶段处理筛选作业数量FIRST_NJOBS=NJOBS*FIRST_PROPORTION。此时计算任务分为两部分——第一阶段处理筛选作业数量FIRST_NJOBS,第二阶段处理筛选作业数量(NJOBS-FIRST_NJOBS);
步骤2:进程分组。指定0到NGROUPS-1号进程为组长进程,每个组长进程中,声明一个数组ProGI,数组大小为NPROCS/NGROUPS,以轮转算法将进程分组,每个进程组中包含NPROCS/NGROUP个进程,包括一个组长进程和(NPROCS/NGROUP-1)个组员进程。第i进程组的第j组员进程的进程编号ProcessID为ProGI[j]=i+j*NGROUPS,第(NPROCS/NGROUPS-1)组员进程的进程编号为i+(NPROCS/NGROUPS-1)*NGROUPS=i+NPROCS-NGROUPS;因此,第i进程组中(NPROCS/NGROUPS-1)个组员进程的进程编号分别为:i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS。第0进程组,…,第i进程组,…,第(NGROUPS-1)进程组并行进行作业筛选,每个进程组作业筛选的流程相同,第i进程组作业筛选的流程如下:
步骤3:FIRST_NJOBS个作业按JobNo分配给组长进程。第i进程组的组长进程,即进程编号ProcessID为i的进程,声明一个整数向量Vdata,以轮转算法将0到FIRST_NJOBS-1号作业按JobNo分配给组长进程,即GROUPID=JobNo%NGROUPS=i的作业被分配到第i进程组中,插入到组长进程的向量Vdata中,即组长进程执行Vdata.push(JobNo);
步骤4:组长进程将Vdata中的元素取出,以先到先得(FirstComeFirstServe,FCFS)方式发送给(NPROCS/NGROUP-1)个组员进程,即进程编号为i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS的(NPROCS/NGROUP-1)个组员进程;
步骤5:进程编号为i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS的(NPROCS/NGROUP-1)个组员进程从组长进程接收筛选作业,并行进行作业筛选计算,流程相同,第j组员进程,即第i+j*NGROUPS号进程的作业筛选计算流程为步骤5.1至步骤5.5,具体如下:
步骤5.1:声明整数变量JobsHandled,表示已经处理的作业数量,初始为0;
步骤5.2:如果接收筛选作业为空,即第i+j*NGROUPS号进程从组长进程接收到“完毕消息”,转步骤12;否则转步骤5.3;
步骤5.3:如果JobsHandled等于0,即首次计算,本进程休眠,即执行sleep((ProcessID/SGSIZE)*T),sleep为进程休眠操作,(ProcessID/SGSIZE)*T为休眠时间,转到步骤5.4;否则JobsHandled不等于0,为非首次计算,转步骤5.4;
步骤5.4:第i+j*NGROUPS号组员进程进行筛选作业计算;
步骤5.5:第i+j*NGROUPS号进程发送“索要新筛选作业”消息给组长进程。
步骤6:组长进程接收消息,根据消息来源不同进行不同处理:
步骤6.1:如果来自本组组员进程,即进程编号ProcessID%NGROUPS=i,从Vdata中取出未处理的筛选作业编号JobNo,发送给编号为ProcessID的进程,转步骤7;
步骤6.2:如果来自其他组长进程,即进程编号ProcessID%NGROUPS≠i,记录当前筛选作业池中,待处理筛选作业首位置JobCurPos,转步骤7;
步骤7:组长进程判断Vdata是否为空,如果Vdata为空,转到步骤8;否则,转到步骤4;
步骤8:组长进程判断JobCurPos与NJOBS是否相等,如果相等,即不存在未处理作业,转到步骤9;否则,从作业池中读取M个作业,将这些作业插入Vdata中,M为整数,1≤M≤(NPROCS/NGROUP-1);M优选为(NPROCS/NGROUP)/2;将这些作业插入Vdata中,同时记录当前JobCurPos,将JobCurPos发送给所有其他组长进程,转到步骤4;
步骤9:组长进程发送“完毕消息”给本组组员;
步骤10:组长进程接收来自组员进程的“作业完成消息”;
步骤11:结束组长进程;
步骤12:结束组员进程;
步骤13:结束。
采用本发明可以达到以下技术效果:
1.本发明步骤3使用轮转算法进行静态任务划分,保证了初始阶段每个进程组都处于满负荷状态;步骤4使用先到先得算法,充分利用了本进程组整体计算能力;步骤8使用动态申请任务的方式,即动态数据划分,“能者多劳”,实现了负载均衡;
2.本发明步骤5.3中,组员进程第一次处理筛选作业时,根据进程编号休眠时间为:(ProcessID/SGSIZE)*T,实现“流水线式”IO和通信隐藏。如图2所示,当第一休眠组在通信阶段,其他休眠组在休眠中;当第一休眠组进入IO阶段,第二休眠组进入通信阶段,以此类推,实现了流水线式IO、通信隐藏。使得系统各睡眠组呈现流水线式工作方式,有效地进行海量并发IO冲突消解,实现了整体的异步IO,同时大大缓解了瞬时通信压力。
附图说明
图1是本发明总体流程图;
图2是对分组睡眠带来的流水线式IO、通信示意图。
具体实施方式
我们选择了药物虚拟筛选软件D3DOCKxb,具体介绍可参见http://med.wanfangdata.com.cn/Paper/Detail?id=DegreePaper_Y2675158。D3DOCKxb是一款实现药物虚拟筛选的软件,该软件由中科院上海药物研究所和国防科大联合研发,支持CPU、MIC多线程并行。通过使用MPI技术结合D3DOCKxb,实现了本发明高通量药物虚拟筛选方法。
天河2号超级计算机作为我们的测试平台,包含16,000个计算结点。每个计算结点包含2个XeonE512核心的多核中央处理器和3个XeonPhi57核心的众核加速器,共312万个计算核心。每个结点拥有64GB主存,每个XeonPhi协处理器板载8GB内存,故每结点共88GB内存,整体总计内存1.408PB。
我们从ZincBank中下载了3500万药物小分子,针对埃博拉病毒蛋白VP35,在8000节点上,基于本发明进行高通量虚拟筛选,其中药物分子对接数据占用700TB磁盘空间,共分为约70亿个小文件,由小分子目录名创建任务列表文件。
具体实施步骤如下:
步骤1:根据参数输入或者配置文件获取NJOBS=35,000,000,FIRST_PROPORTION=5%,NPROCS=32,000,NGROUPS=100,SGSIZE=5000,T=5s,计算得到FIRST_NJOBS=1,750,000,NPROCS%NGROUPS=0。此时计算作业分为两部分:第一阶段处理筛选作业数量1,750,000,第二阶段处理筛选作业数量33,250,000;
步骤2:指定0到99号进程为组长进程,每个组长进程中,声明一个数组ProGI,数组大小为320。以轮转算法将进程分组,每个进程组中包含320个进程,包括一个组长进程和319个组员进程。第i进程组的第j组员进程的进程编号ProcessID为ProGI[j]=i+j*100,0≤i≤99,1≤j≤319,i、j均为整数。第0进程组,…,第i进程组,…,第99进程组并行进行作业筛选,每个进程组作业筛选的流程相同,第i进程组作业筛选的流程如下:
步骤3:1,750,000个作业按JobNo分配给组长进程。第i进程组的组长进程,即进程编号ProcessID为i的进程,声明一个整数向量Vdata,以轮转算法将0到1,749,999号作业按JobNo分配给组长进程,即GROUPID=JobNo%100=i的作业被分配到第i进程组中,插入到组长进程的向量Vdata中,即组长进程执行Vdata.push(JobNo);
步骤4:组长进程将Vdata中的元素取出,以先到先得方式发送给319个组员进程,即进程编号为i+100,…,i+j*100,…,i+31900的319个组员进程;
步骤5:进程编号为i+100,…,i+j*100,…,i+31900的319个组员进程从组长进程接收筛选作业,并行进行作业筛选计算,流程相同,第j组员进程,即第i+j*100号进程的作业筛选计算流程为步骤5.1至步骤5.5,具体如下:
步骤5.1:声明整数变量JobsHandled,表示已经处理的作业数量,初始为0;
步骤5.2:如果接收筛选作业为空,即第i+j*100号进程从组长进程接收到“完毕消息”,转步骤12;否则转步骤5.3;
步骤5.3:如果JobsHandled等于0,即首次计算,本进程休眠,即执行sleep((ProcessID/5000)*5),转步骤5.4,否则JobsHandled不等于0,为非首次计算,转步骤5.4;
步骤5.4:第i+j*100号组员进程进行筛选作业计算;
步骤5.5:第i+j*100号进程发送“索要新筛选作业”消息给组长进程。
步骤6:组长进程接收消息,根据消息来源不同进行不同处理:
步骤6.1:如果来自本组组员进程,即进程编号ProcessID%NGROUPS=i,从Vdata中取出未处理的筛选作业编号JobNo,发送给编号为ProcessID的进程,转步骤7;
步骤6.2:如果来自其他组长进程,即进程编号ProcessID%NGROUPS≠i,记录当前筛选作业池中,待处理筛选作业首位置JobCurPos,转步骤7;
步骤7:组长进程判断Vdata是否为空,如果Vdata为空,转到步骤8;否则,转到步骤4;
步骤8:判断JobCurPos是否等于35,000,000,如果相等,即不存在未处理作业,转到步骤9,否则,从作业池中读取160个作业,将这些作业插入Vdata中,同时记录当前JobCurPos,将JobCurPos发送给所有其他组长进程,转到步骤4;
步骤9:组长进程发送“完毕消息”给本组组员;
步骤10:组长进程接收来自组员进程的“作业完成消息”;
步骤11:结束组长进程;
步骤12:结束组员进程;
步骤13:结束作业处理。
统计运行数据后发现,本发明可以实现高达84.7%的并行效率,通信延迟和IO延迟都较小,有效的实现了负载均衡,规避了IO、通信瓶颈。
图2是对分组睡眠带来的流水线式IO、通信示意图。组员进程在首次接收到筛选作业采用按进程编号睡眠的方式,休眠组中包含SGSIZE个进程。本发明进行高通量虚拟药物筛选每个进程组之间主要包括通信、IO、逻辑计算、IO操作:首先,组长进程与组员进程之间进行通信操作,组员进程向组长进程索要作业,组长进程分发作业;其次,组员进程收到作业后,进行作业筛选计算前的IO操作,读取作业筛选计算前的相关参数、文件;再次,组员进程进行逻辑计算,即作业筛选计算;最后,计算结束后,组员进程将计算结果返回,IO操作。当第一休眠组在通信阶段,其他休眠组在休眠中;当第一休眠组进入IO阶段,第二休眠组进入通信阶段,以此类推,实现了流水线式IO、通信隐藏。使得系统各睡眠组呈现流水线式工作方式,有效地进行海量并发IO冲突消解,实现了整体的异步IO,同时大大缓解了瞬时通信压力。
Claims (8)
1.基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于包含以下步骤:
步骤1:初始化;根据参数输入或者配置文件获取初始参数:待处理筛选作业总数量NJOBS、第一阶段所处理筛选作业比例FIRST_PROPORTION、总进程数NPROCS、进程组数NGROUPS、睡眠组大小SGSIZE、睡眠时间T,计算得到第一阶段处理筛选作业数量FIRST_NJOBS=NJOBS*FIRST_PROPORTION;此时计算任务分为两部分——第一阶段处理筛选作业数量FIRST_NJOBS,第二阶段处理筛选作业数量(NJOBS-FIRST_NJOBS);
NJOBS为大于1的整数;FIRST_PROPORTION为实数,0<FIRST_PROPORTION<1;FIRST_NJOBS为大于1的整数,FIRST_NJOBS=NJOBS*FIRST_PROPORTION;NPROCS为自然数;NGROUPS为整数,1≤NGROUPS<NPROCS;SGSIZE为整数,0≤SGSIZE≤NPROCS;T为大于0的整数;
步骤2:进程分组;指定NGROUPS个组长进程,每个组长进程中,声明一个数组ProGI,数组大小为NPROCS/NGROUPS,以轮转算法将进程分组,每个进程组中包含NPROCS/NGROUP个进程,包括一个组长进程和(NPROCS/NGROUP-1)个组员进程;第0进程组,…,第i进程组,…,第(NGROUPS-1)进程组并行进行作业筛选,每个进程组作业筛选的流程相同,第i进程组作业筛选的流程如下:
步骤3:FIRST_NJOBS个作业按筛选作业编号JobNo分配给组长进程;第i进程组的组长进程,声明一个整数向量Vdata,将0到FIRST_NJOBS-1号作业分配给组长进程,插入到组长进程的向量Vdata中;JobNo为整数,0≤JobNo≤NJOBS-1;
步骤4:组长进程将Vdata中的元素取出,发送给(NPROCS/NGROUP-1)个组员进程;
步骤5:(NPROCS/NGROUP-1)个组员进程从组长进程接收筛选作业,并行进行作业筛选计算,流程相同,第j组员进程的作业筛选计算流程为步骤5.1至步骤5.5,具体如下:
步骤5.1:声明整数变量JobsHandled,表示已经处理的作业数量,初始为0;
步骤5.2:如果接收筛选作业为空,即进程从组长进程接收到“完毕消息”,转步骤12;否则转步骤5.3;
步骤5.3:如果JobsHandled等于0,即首次计算,本进程休眠,即执行sleep((ProcessID/SGSIZE)*T),sleep为进程休眠操作,转步骤5.4;否则JobsHandled不等于0,为非首次计算,转步骤5.4;
步骤5.4:第i+j*NGROUPS号组员进程进行筛选作业计算;
步骤5.5:第i+j*NGROUPS号进程发送“索要新筛选作业”消息给组长进程;
步骤6:组长进程接收消息,根据消息来源不同进行不同处理:
步骤6.1:如果来自本组组员进程,从Vdata中取出未处理的筛选作业编号JobNo,发送给编号为ProcessID的进程,转步骤7;
步骤6.2:如果来自其他组长进程,记录当前筛选作业池中,待处理筛选作业首位置JobCurPos,转步骤7;
步骤7:组长进程判断Vdata是否为空,如果Vdata为空,转到步骤8;否则,转到步骤4;
步骤8:组长进程判断JobCurPos与NJOBS是否相等,如果相等,即不存在未处理作业,转到步骤9;否则,从作业池中读取M个作业,将这些作业插入Vdata中,M为整数,1≤M≤(NPROCS/NGROUP-1);同时记录当前JobCurPos,将JobCurPos发送给所有其他组长进程,转到步骤4;
步骤9:组长进程发送“完毕消息”给本组组员;
步骤10:组长进程接收来自组员进程的“作业完成消息”;
步骤11:结束组长进程;
步骤12:结束组员进程;
步骤13:结束。
2.如权利要求1所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述总进程数可以被进程组数整除,即NPROCS%NGROUPS=0,其中%为求余操作符。
3.如权利要求1所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤2中指定0到NGROUPS-1号进程为组长进程。
4.如权利要求3所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤2中,第i进程组的第j组员进程的进程编号ProcessID为ProGI[j]=i+j*NGROUPS,0≤i≤NGROUPS-1,1≤j≤(NPROCS/NGROUPS-1),i、j均为整数;第i进程组中(NPROCS/NGROUPS-1)个组员进程的进程编号分别为:i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS。
5.如权利要求3所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤3中,第i进程组的组长进程以轮转算法将0到FIRST_NJOBS-1号作业按JobNo分配给组长进程,即GROUPID=JobNo%NGROUPS=i的作业被分配到第i进程组中,GROUPID为整数,GROUPID=0,1,…,NGROUPS-1,其中/为除操作。
6.如权利要求3所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤4中,组长进程将Vdata中的元素取出,以先到先得FCFS方式发送给(NPROCS/NGROUP-1)个组员进程,即进程编号为i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS的(NPROCS/NGROUP-1)个组员进程。
7.如权利要求3所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤4中,组长进程将Vdata中的元素取出,以先到先得FCFS方式发送给(NPROCS/NGROUP-1)个组员进程,即进程编号为i+NGROUPS,…,i+j*NGROUPS,…,i+NPROCS-NGROUPS的(NPROCS/NGROUP-1)个组员进程。
8.如权利要求1至7中任意一项所述的基于动态数据划分和冲突消解的高通量药物虚拟筛选方法,其特征在于所述步骤8中从作业池中读取的作业数量M=(NPROCS/NGROUP)/2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510960149.9A CN105608341B (zh) | 2015-12-19 | 2015-12-19 | 基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510960149.9A CN105608341B (zh) | 2015-12-19 | 2015-12-19 | 基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105608341A true CN105608341A (zh) | 2016-05-25 |
CN105608341B CN105608341B (zh) | 2018-01-19 |
Family
ID=55988270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510960149.9A Active CN105608341B (zh) | 2015-12-19 | 2015-12-19 | 基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105608341B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111243660A (zh) * | 2020-01-06 | 2020-06-05 | 中国海洋大学 | 一种基于异构众核架构的并行海洋药物筛选方法 |
CN111681703A (zh) * | 2020-05-09 | 2020-09-18 | 北京纽伦智能科技有限公司 | 一种蛋白结构的对接方法及分布式蛋白结构对接系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916330A (zh) * | 2010-08-06 | 2010-12-15 | 辽宁大学 | 一种以Keap1为靶点的新型防癌抗癌药物的虚拟筛选方法 |
CN102750459A (zh) * | 2012-06-14 | 2012-10-24 | 辽宁大学 | 一种以人乳头瘤病毒hpv的dna解旋酶e1为靶点的抗hpv病毒药物的虚拟筛选方法 |
CN102796799A (zh) * | 2011-05-23 | 2012-11-28 | 上海市第六人民医院 | 实时动态高通量筛选治疗肾脏病药物的方法 |
-
2015
- 2015-12-19 CN CN201510960149.9A patent/CN105608341B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916330A (zh) * | 2010-08-06 | 2010-12-15 | 辽宁大学 | 一种以Keap1为靶点的新型防癌抗癌药物的虚拟筛选方法 |
CN102796799A (zh) * | 2011-05-23 | 2012-11-28 | 上海市第六人民医院 | 实时动态高通量筛选治疗肾脏病药物的方法 |
CN102750459A (zh) * | 2012-06-14 | 2012-10-24 | 辽宁大学 | 一种以人乳头瘤病毒hpv的dna解旋酶e1为靶点的抗hpv病毒药物的虚拟筛选方法 |
Non-Patent Citations (1)
Title |
---|
庄笑梅等: "VolSurf软件及其在药物代谢性质虚拟高通量筛选中的应用", 《中国药理学与毒理学杂志》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111243660A (zh) * | 2020-01-06 | 2020-06-05 | 中国海洋大学 | 一种基于异构众核架构的并行海洋药物筛选方法 |
CN111681703A (zh) * | 2020-05-09 | 2020-09-18 | 北京纽伦智能科技有限公司 | 一种蛋白结构的对接方法及分布式蛋白结构对接系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105608341B (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Peterka et al. | Scalable parallel building blocks for custom data analysis | |
Dryden et al. | Channel and filter parallelism for large-scale CNN training | |
Xie et al. | CuMF_SGD: Parallelized stochastic gradient descent for matrix factorization on GPUs | |
Lu et al. | Mrphi: An optimized mapreduce framework on intel xeon phi coprocessors | |
CN102591709B (zh) | 基于OGR的shapefile文件主从式并行写方法 | |
Liu | Parallel and scalable sparse basic linear algebra subprograms | |
Gmys et al. | A GPU-based Branch-and-Bound algorithm using Integer–Vector–Matrix data structure | |
Chien et al. | TensorFlow doing HPC | |
Burchard et al. | ipug: Accelerating breadth-first graph traversals using manycore graphcore ipus | |
Kozawa et al. | Gpu-accelerated graph clustering via parallel label propagation | |
CN105608341A (zh) | 基于动态数据划分和冲突消解的高通量药物虚拟筛选方法 | |
Elnashar | Parallel performance of MPI sorting algorithms on dual-core processor windows-based systems | |
You et al. | High-performance polyline intersection based spatial join on GPU-accelerated clusters | |
Vijayalakshmi et al. | The survey on MapReduce | |
Wei et al. | Reconstructing permutation table to improve the Tabu Search for the PFSP on GPU | |
Vo et al. | HyperFlow: A Heterogeneous Dataflow Architecture. | |
Wan et al. | A novel cooperative accelerated parallel two-list algorithm for solving the subset-sum problem on a hybrid CPU–GPU cluster | |
Aslam et al. | Performance comparison of gpu-based jacobi solvers using cuda provided synchronization methods | |
US8473948B1 (en) | Method for synchronizing independent cooperative thread arrays running on a graphics processing unit | |
Geng et al. | The importance of efficient fine-grain synchronization for many-core systems | |
Kruliš et al. | Optimizing sorting and top-k selection steps in permutation based indexing on gpus | |
Langr et al. | Algorithm 947: Paraperm---Parallel Generation of Random Permutations with MPI | |
Youssef | Parallelization of a bio-inspired computational model for the simulation of 3-D multicellular tissue growth | |
Liu et al. | A-MapCG: an adaptive MapReduce framework for GPUs | |
Döschl et al. | Performance evaluation of GPU-and cluster-computing for parallelization of compute-intensive tasks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |