您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 高性能计算习题及答案
高性能计算练习题1、一下哪种编程方式适合在单机内并行?哪种适合在多机间并行?单机:Threading线程、OpenMP;多机:MPI。2、例题:HPC集群的峰值计算能力:一套配置256个双路X5670处理器计算节点的HPC集群。X5560:2.93GHzIntelXS5670Westmere六核处理器,目前主流的Intel处理器每时钟周期提供4个双精度浮点计算。峰值计算性能:2.93GHz*4Flops/Hz*6Core*2CPU*256节点=36003.8GFlops。Gflops=10亿次,所以36003Gflops=36.003TFlops=36.003万亿次每秒的峰值性能。3、Top500排名的依据是什么?HighPerformanceLinpack(HPL)测试结果4、目前最流行的GPU开发环境是什么?CUDA5、一套配置200TFlops的HPC集群,如果用双路2.93GHzIntelwestmere六核处理器X5670来构建,需要用多少个计算节点?计算节点数=200TFlops/(2*2.93GHz*6*4Flops/Hz)=14226、天河1A参与TOP500排名的实测速度是多少,效率是多少?2.57PFlops55%7、RDMA如何实现?RDMA(RemoteDirectMemoryAccess),数据发送接收时,不用将数据拷贝到缓冲区中,而直接将数据发送到对方。绕过了核心,实现了零拷贝。8、InfiniBand的最低通讯延迟是多少?1-1.3usecMPIend-to-end,0.9-1usInfiniBandlatencyforRDMAoperations9、GPU-Direct如何加速应用程序运行速度?通过除去InfiniBand和GPU之间的内存拷贝来加速程序运行。•GPUsprovidecosteffectivewayforbuildingsupercomputers【GPUs提供高效方式建立超级计算机】•Densepackagingofcomputeflopswithhighmemorybandwidth【使用高端内存带宽的密级封装浮点计算】10、网络设备的哪个特性决定了MPI_Allreduce性能?集群大小,TimeforMPI_Allreducekeepsincreasingasclustersizescales,也就是说集群的规模决定了MPI_Allreduce的性能。11、现排名世界第一的超级计算机的运行速度?Kcomputer:10PFlops也就是10千万亿次,93%12、以下哪些可以算作是嵌入式设备:A路由器B机器人C微波炉D笔记本电脑13、选择嵌入式操作系统的头两个因素是:A成本B售后服务C可获得源代码D相关社区E开发工具14、构建嵌入式Linux的主要挑战是:A需要广博的知识面B深度定制的复杂性C日益增加的维护成本D稳定性与安全性E开源项目通常质量低下15、TheYoctoProject的主要目的是:A.构建一个统一的嵌入式Linux社区B.提供高质量的工具帮助你轻松构建嵌入式Linux,从而专注于其上的研究工作C.包括一组经过测试的metadata,指导最核心的一些开源项目的交叉编译过程D.提供灵活的扩展接口,可以方便的导入新的项目,或是新的板级支持包(BSP)16、请描述交叉编译一个开源项目需要完成哪些工作?Patch-Configure-Compile-Install-Sysroot-Package-Do_rootfs17.Top500排名的依据是什么?答:HighPerformanceLinpack(HPL)测试结果18.Writecodestocreateathreadtocomputethesumoftheelementsofanarray.答:Createathreadtocompletethesumoftheelementsofanarray.structarguments{double*array;intsize;double*sum;}intmain(intargc,char*argv){doublearray[100];doublesum;pthread_tworker_thread;structarguments*arg;arg=(structarguments*)calloc(1,sizeof(structarguments));arg-array=array;arg-size=100;arg-sum=∑if(pthread_create(&worker_thread,NULL,do_work,(void*)arg)){fprintf(stderr,”Errorwhilecreatingthread\n”);exit(1);}...}void*do_work(void*arg){structarguments*argument;inti,size;double*array;double*sum;argument=(structarguments*)arg;size=argument-size;array=argument-array;sum=argument-sum;*sum=0;for(i=0;isize;i++)*sum+=array[i];returnNULL;}19.Giveagoodoptiontocomputeforloadbalancing.(n=16andthereare4processors)20.Pleaselistthewaysforimprovingperformance.Option#1:BuyFasterHardwareOption#2:ModifythealgorithmOption#3:ModifythedatastructuresOption#4:ModifytheimplementationOption#5:Useconcurrency21、Ifacodeis10%sequential,andthereare4processors,pleasecalculatethespeedup.F=10%T1=0.1T1+0.9T1T4=0.1T1+0.9T1/4=0.325T1Speedup=T1/T4=3.07722.Pleaseshowtheprocessofn-pipelinedexecutionof4taskstoachievehigherthroughput(i.e.numberoftaskspertimeunit)ifeachtaskhas4sequentialstageswhichtake1,2,5,1timeunitrespectively.time=1+2+5*4+1=2423.128个双路2.66GHzIntelNehalem四核处理器计算节点的HPC集群,其峰值计算是多少128*2*2.66G*4*4(一个时钟周期可进行4次浮点运算)=10,895GFlops24.并行计算提出的原因提高性能和存储能力;使用户和计算机之间相互协调;获得一个问题的逻辑结构;处理独立的物理设备25.并行的三大问题:性能,准确性,可编程性ProgrammabilityRISC:ReducedInstructionSetComputingCISC:ComplexInstructionSetComputerMIPS:MillionInstructionsPerSecondILP:InstructionLevelParallelism指令层并行.SMT:SimultaneousMultiThreading同时多线程SMP:SymmetricMulti-ProcessorsSISD:SingleinstructionsingledataSIMD:Singleinstructionmultipledata单指令流多数据流MIMD:MultipleinstructionsmultipledataMISD:MultipleinstructionssingledataMPP:MassivelyParallelProcessor大规模并行处理器26.在一个CPU中可通过几种技术实现并发机制流水线:Pipelining,RISC体系结构如果一个处理器要处理若干个任务,且每个任务有相同的n个步骤组成,不同部分又可同时执行,则处理器可采取流水线方式处理这些任务。流水线的任务是获得高的吞吐量。当任务数很多时,系统吞吐量接近于1/最大子任务持续时间RISC的思想是:使所有指令由相同数量的持续时间相同的步骤。MPI:MassagePassingInterface是消息传递函数库的标准规范.GPU:GraphicProcessingUnit图形处理器27.Parallelcomputing:单一系统,众核处理同一任务。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。28.并行计算优势:处理器总体性能更强;总体内存更大。29.HPC集群峰值计算能力一套配置256个双路X5560处理器计算节点的HPC集群X5560:2.8GHzIntelX5560Nehalem四核处理器目前主流的处理器每时钟周期提供4个双精度浮点计算峰值计算性能:2.8GHz*4Flops/Hz*4Core*2CPU*256节点=22937.6GFlopsGflops=10亿次,所以22937Gflops=22.937TFlops=22.937万亿次每秒的峰值性能CUDA:ComputeUnifiedDeviceArchitecture通用并行计算架构,显卡厂商推出的运算平台。30.ParallelSpeedup评价一个并行算法的性能的重要参数是:并行加速度。Speedup(p)=T1/Tp每个并行程序都有串行部分和并行部分:T1=fT1+(1-f)T1;Tp=fT1+(1-f)T1/p因此:Speedup(p)=1/(f+(1-f)/p)=p/(fp+1-f)≦1/f31.并行效率ParallelEfficiency:Effp=Sp/p32.负载均衡LoadBalancingPleaseshowtheidealprocessforcomputingSUM(f(1)+f(2)+…+f(8))ifweassumethatthereare3processorsandconsiderloadbalancing.一种可能:Processor0:F1F4F7147Processor1:F2F5F8368Processor2:F3F636142514736812345678负载均衡:平衡所有处理器之间的计算量。α:计算f(n)所花时间,β:两数相加所花时间。设计并行程序:(目标是使并行加速度达到最大)(1)分解任务,确定可并行执行的部分,将大任务分解成多个可并行执行的小任务。尽量使所有处理器都有任务处理,但是也要避免太多太小的任务。(2)分配任务,将每个任务分配到线程中。尽量保证负载均衡。(3)指挥控制,主要是管理数据和协调多个线程之间的通信。尽量保证线程执行的正确性,减少串行化部分和同步开销。(4)映射,将线程映射到处理器上执行。e.g.:s=f(A[1])+…+f(A[n])(1)Decompositioncomputingeachf(A[j])n-foldparallelism,wherenmaybepcomputingsums(2)Assignmentthreadksumssk=f(A[k*n/p])+…+f(A[(k+1)*n/p-1])thread1sumss=s1+…+sp(forsimplicityofthisexample)thread1communicatesstootherthreads(3)Orchestrationstartingupthreadscommunicating,synchronizingwiththread1(4)MappingprocessorjrunsthreadjMFlops:Millio
本文标题:高性能计算习题及答案
链接地址:https://www.777doc.com/doc-6124264 .html