科学计算软件开发框架的设计与实现

科学计算软件开发框架的设计与实现

一、科学计算软件开发框架的设计与实现(论文文献综述)

何连花,赵莲,姜金荣,金钟[1](2021)在《高性能计算数值模拟框架软件研究进展》文中提出【背景】本世纪我国超级计算机得到迅速发展,为降低面向超级计算机并行编程难度,高性能编程框架已经成为高性能计算的研究方向之一。【方法】本文简要介绍了高性能数值模拟编程框架的研究目的,主要关注国内外结构网格和非结构网格编程框架的发展现状。【结论】面向E级计算机即将到来,框架软件的发展也需针对E级计算机的体系结构特征,调整底层数据结构和核心算法,提升并行可扩展性,增强对异构众核计算的支持,使其能具备支撑开发E级并行计算应用软件的能力。同时也需要结合领域专家的需求,不断拓展新领域新方向,针对新问题开发新的功能模块,以便应用到更多的科学计算领域。

徐顺,王武,张鉴,姜金荣,金钟,迟学斌[2](2021)在《面向异构计算的高性能计算算法与软件》文中进行了进一步梳理研发适应国产异构计算环境的高性能计算算法与软件是非常重要的课题,对我国高性能计算软件研发匹配高性能计算硬件高水平发展的速度具有重要意义.首先,简要介绍高性能计算应用软件的现状、趋势和面临挑战,并对几类典型高性能计算应用软件开展并行计算算法特征分析,涵盖了宇宙N体模拟、地球系统模式、计算材料相场动力学、分子动力学、量子计算化学和格点量子色力学等多个问题、尺度和领域.其次,讨论了面向国产异构计算系统的对策,提炼出若干典型应用算法和软件的共性问题,涉及核心算法、算法发展、优化策略等.最后,面向异构计算体系结构,对高性能计算算法与软件进行了总结.

贾冬阳[3](2021)在《基于SiPESC平台与Tensorflow框架的联合优化策略研究》文中认为随着电子计算机的高速发展,计算机辅助工程在工程设计中的应用越发广泛,优化设计变得更加重要。结构优化设计旨在求得可靠的最优解,得到更加经济、安全、稳定的结构设计方案。本文融合机器学习方法的联合优化流程研究具有工程实际意义,研究探索该策略的工程适用性。首先,针对优化设计流程,本文在自主软件SiPESC平台优化模块SiPESC.OPT内,利用现有试验设计方法与优化算法,引入开源机器学习算法库,搭建完整的融合优化流程。以SiPESC.OPT为载体,利用Python脚本语言,探索合适的友好优化环境,为结构与多学科耦合优化提供更便捷高效的可能。然后,通过数值算例与典型有限元算例证明和展示了回归分析环节的正确性与优化流程的运行方式。基于SiPESC.OPT,融合Tensorflow框架完成回归算法实现,提出联合优化策略。以Three-Hump-Camel、Griewank、Branin三个二元函数的回归计算验证了面向非线性问题时预测模型的准确性,将本策略用于简易组合梁结构优化求解,证实了该方法推广到工程实际中的可行性。更进一步,通过多个复杂结构有限元优化算例求解,验证了SiPESC.OPT内联合优化策略在结构求解中的应用可能,展示了该流程的高效性与实用性。面向工程支架,利用神经网络训练得到结构频率、最大应力、质量与开孔定位信息的对应关系,完成形状优化设计;针对海洋浮体结构,对应复杂建模环境下的加筋位置与筋条尺寸选择,在本文所提优化策略内快速得到最优频率优化结果;关于电站检修平台优化问题,灵活分析主次梁铺设位置与截面尺寸,达到轻量化目标。最后,推广该策略至轨迹规划问题的优化求解中,分别对五连杆机构的最优初始状态、曲柄滑块机构初始位置完成计算。求解基于标准试验设计表,探索合适的网络结构后与优化计算模块完成交互,更进一步证明了面向不同问题时的便捷性和可迁移性。

罗德宁[4](2021)在《大规模数据实时绘制关键技术研究》文中提出三维图形绘制在游戏娱乐、虚拟现实、科学计算可视化等众多领域有着广泛应用,而且在实时和真实方面的绘制要求越来越高。近年来,软硬件的计算性能得到了很大提升,但是面对数据规模的日益增长,大规模数据的实时绘制面临巨大挑战。本文主要针对体数据和地理地形数据的真实和实时绘制技术展开研究。对于精度高、体量大的体数据,三维可视化计算量大,同时增加光照计算更加重了计算负担。大规模地理地形数据一直存在如何高效处理和绘制的问题。同时,反走样技术在数据绘制中能够显着增强视觉效果,减少图像走样、闪烁,但会带来额外的绘制开销。数据规模的增长无疑加重了各种绘制技术的计算开销,即便是提高绘制性能的并行绘制技术在面绘制和体绘制上还存在诸多挑战。针对上述技术问题,本文的主要工作和创新点包括以下方面:(1)数据并行化体绘制及光照计算在基于切片和光线投射两种主流体绘制方法基础上,针对光照计算量大的问题展开性能可扩展研究。针对基于切片体绘制在多绘制遍全局光照计算效率低的问题,提出单绘制遍多切片(Multi-Slice Per Pass,MSPP)算法,从数据与算法并行层面提升绘制能力。在相同切片数量下,MSPP算法可以提高半角切片(Half-Angle Slicing)算法大约两倍的性能。针对光线投射体绘制采样复杂导致光照计算量大的问题,提出基于切片的光线投射(Slice-based Ray Casting,SBRC)方法提升绘制效率和效果。首先,以光源为视点逐切片绘制体数据的整个几何体切片的光照信息到光照衰减缓存。其次,在光线投射过程中,利用光照衰减缓存计算采样点的光照影响,包括体积阴影、软阴影及散射等效果计算。SBRC算法只需要一个绘制遍的时间开销,并且通过变化切片数量和每个切片的分辨率实现可扩展的绘制性能。实验表明,以上方法能够大幅提升体数据的绘制效率和效果,满足性能可扩展的体数据绘制要求。(2)大规模地形数据高效组织与绘制三维地理地形绘制主要包括地理数据组织和三维地形构建两个主要过程。为了使地形绘制发挥最佳性能,并且支持层次细节(Level of Detail,LOD)及Mipmap技术提升绘制性能,提出一种灵活的数字高程模型及数字正射影像经纬度范围一致的无缝划分策略,并对每一块地形瓦片采用分组、分段、四边形网格的组织方式,快速生成具有LOD高效调度的真实三维地形。实验表明,该方法能够快速构建性能可扩展的三维地形,减少绘制调用。(3)数据绘制中的反走样技术针对延迟着色阶段开启硬件反走样方法无法直接兼容的问题,提出子像素连续边界反走样(Sub-Pixel Reconstruction Continuous Edges,SRCE)方法。首先,开启多重采样反走样绘制场景到几何体缓存(Geometry Buffer,G-Buffer)。其次,在子像素上利用切比雪夫不等式通过概率统计检测边界像素,以及标识边界像素和普通像素减少着色线程一致性开销。再次,以#过滤方法从子像素上重构连续边界。最后,自适应着色边界像素进行反走样处理。SRCE方法使三维物体边缘的“阶梯”效应最小化,同时还可以结合后处理或时间反走样技术增强图形绘制效果。针对延迟着色技术与覆盖采样反走样(Coverage Sample Anti-Aliasing,CSAA)不兼容的问题,提出基于延迟着色技术的大场景反走样绘制架构。该架构能够针对不同绘制对象使用不同的反走样级别,减少延迟与卡顿,从而平衡效果与效率。实验表明,以上方法能够有效提高数据的绘制质量,同时平衡绘制性能。(4)大规模数据并行绘制虚拟化框架在主流并行绘制框架研究基础上,结合虚拟化技术设计了一种三维图形并行绘制虚拟化框架(Parallel Rendering Virtualized Framework,PRVF),提高体绘制、面绘制及反走样技术在大规模数据上的算力结构并行绘制能力。以Equalizer作为并行绘制中间件,灵活组织并行绘制各功能模块,虚拟化各类绘制资源作为绘制单元,按需调度及管理。综上所述,本文研究体数据及地理地形数据在实时绘制方面的一系列关键技术问题,充分提高真实与实时绘制能力,通过从数据、算法和算力结构等并行层面有效提升大规模数据绘制的实用性。

张军[5](2021)在《数据采集分析软件的设计与实现》文中研究说明随着我国的工业互联网快速发展,在现代工业控制的各个方面,人们也越来越重视对于工业控制系统中的数据的采集和分析。目前,在现代工业的数据采集技术领域,存在多种类型的工业协议和标准,然而各种协议之间并不相容,这导致了对于数据的采集应用中存在着数据解析、数据格式转换困难等问题。同时,大多数的数据采集和分析平台软件,针对的都是企业级别的应用,无法满足个人对数据的采集和分析等各方面的要求。另一个问题就是,数据采集的软件众多,但没有提供对后续数据的处理和分析功能,导致了对数据的采集与进行分析利用功能的分离,不利于后续采集和进行数据分析。为了解决上述问题,本文针对常用的工业控制器和传感器设备开发了数据采集分析软件。首先,该软件使用实验室自主设计开发的PIC微控制作为数据采集设备,同时为了有效保证该软件的可靠性,方便其他采集设备的接入,该软件还提供了基于TCP协议、Modbus协议等多种网络通讯协议的信息通讯功能。该软件因此可以能够直接实现多个通讯协议下的多通道数据采集功能,并且还可以直接对多个通道采集的数据进行实时的数据显示。其次,软件提供了应用程序开发的功能,用户可以直接通过应用程序软件方式进行算法的实现,并通过采集到的相关数据和应用程序函数库所提供的算法对构建的算法的可行性进行分析和验证。在该软件的函数库中针对常用的数值分析函数、数据可视化函数等信息库进行二次封装和分类管理,方便了用户有效地对数据库信息进行分析。最后,为了有效保证软件功能的可扩展性,软件借鉴了插件式开发的设计思想,采用了一种动态加载的机制,方便用户根据自己的需求对软件的功能进行扩展。此外,为了用户能够高效率的使用该软件,搭建了资源共享服务器,用户可分享采集的数据,实现的算法以及对软件功能拓展的功能函数,实现资源共享,合作开发。此软件经过测试使用,设计的各种功能都能够稳定运行,虽有一些需要后期改进之处,但总体来说,该软件在工业数据的采集分析方面,能够发挥一定作用。

范良[6](2021)在《基于OpenMP/MPI的大规模标量场数据并行体可视化技术研究》文中指出体可视化将三维体数据直接映射为半透明的二维图片,具有强大的空间表现能力,是重要的三维标量场数据可视化方法。但是,体绘制算法设计复杂,涉及大量浮点运算,目前的串行体绘制算法难以满足大规模标量场数据体可视化需求。本文采用线程/进程并行的方法,提出并行体绘制算法,解决大规模标量场数据体可视化,且满足实时交互需求。本文的贡献主要体现在以下三个方面:(1)线程并行投影四面体算法。可见性排序和四面体投影分类/拆分是串行投影四面体算法中最耗时的两个部分,本文使用Open MP编程框架,研究并实现了相应的线程并行算法。经过20核CPU实验测试,与串行投影四面体算法相比,本文算法加速比为3.5;与VTK体绘制算法相比,本文算法加速比为2.5。(2)进程并行体绘制算法。本文采用MPI编程框架,设计并实现了基于进程并行的体绘制算法。在并行读取大规模体数据的基础上,每个进程使用KD树算法进行数据分割;然后,每个进程采用独立的管线计算体绘制图像,并通过树合成策略合成最终结果。经过80核CPU实验测试,与串行体绘制算法相比,本文算法加速比为37.6。(3)松耦合C/S并行体可视化系统。客户端产生交互命令和显示体绘制结果,服务器承担可视化计算和绘制任务。其中,客户端/服务器之间采用Socket通信,服务器进程之间采用MPI通信。充分利用设计模式技术,采用模块化的实现,确保了系统的高度灵活性和可扩展性。经过节点内并行和跨节点并行实验测试,本系统可以很好地应用于大规模非结构网格数据体可视化,且满足实时交互需求。

王欣夷[7](2021)在《计算密集型科学计算应用在多GPU平台上的并行化设计与实现》文中提出单GPU无法高效支持未来科学计算应用的计算资源需求,而多GPU平台可以提供更多的计算资源和存储能力,有望极大地提升应用的执行效率。但多GPU平台编程有较高的复杂性,如何将传统应用在多GPU平台上进行并行化,并充分利用新结构的能力,成为当下的热点研究问题。针对计算密集型科学计算应用在多GPU平台上的合理并行化问题,本文选取k-means算法、稀疏矩阵向量乘法(Sparse Matrix-Vector Multiplication,Sp MV)以及基于商旅问题(Traveling salesman,TSP)的蚁群算法,在基于MGPUSim的多GPU模拟实验平台上开展了并行化工作,并针对各算法特点分别提出了针对性优化。本文主要工作如下:1、基于现有系统配置ROCm平台与Golang环境,实现对多GPU平台的搭建与部署,根据平台接口使用Open CL与Golang重构应用代码,以及通过Clang-ocl、go-bindata与esc工具对内核进行编译,完成应用并行化。2、在k-means算法并行化中,提出一种针对初始化聚类中心的优化方法,分别通过控制实验变量(聚类中心数量、聚类点数量以及样本点维度)对k-means算法进行并行化实验。实验结果表明在样本点维度合适的情况下,能在较短时间获得较好的结果,相对于串行执行时间,能获得15.09-417.86倍的加速比。3、在Sp MV算法并行化中,提出了一种稀疏矩阵预处理存储方法,实现了对最佳稀疏矩阵存储方式的有效预测,进而提高计算效率。实验结果表明:采用该方法所预测的存储格式,能实现所有备选格式中最快的计算速率;同时较大规模的矩阵在划分存储后,能在更短的时间内得出计算结果,可达到未划分前计算速率的2.3倍。4、在蚁群算法并行化中,采用一种粗粒度方式,对概率转移矩阵的计算使用并行规约,通过减少计算的迭代次数来提高计算效率;相对于其他GPU平台上的并行蚁群算法,能获得3-6倍的加速比。

朱雨[8](2021)在《面向国产异构众核处理器的Stencil计算性能优化技术研究》文中研究表明Stencil是一类在科学计算和工程应用中常见的计算模式,其计算和访存开销随规模增大呈线性增长,适合在高性能计算机上并行执行。我国自主研发设计的“神威·太湖之光”由国产SW26010众核处理器搭载而成,是世界上首台性能超过100 Pflop/s的超级计算机。为充分发挥国产超级计算机在科学应用性能加速中的作用,针对Stencil计算的性能优化研究十分重要。然而,Stencil计算在国产异构众核处理器上面临着访存带宽受限的挑战,并且在优化过程中需要大量的手工调优工作。为了实现Stencil计算及其应用在国产异构众核处理器上的深度优化和高效部署,本文对Stencil计算在国产异构众核处理器上的性能优化技术展开研究,主要工作和研究成果包括:1、设计并实现了Stencil计算在国产异构众核处理器上的并行优化方案。针对国产异构众核处理器的体系架构和存储特点,分析Stencil计算在并行优化过程中的主要性能瓶颈。设计了适应局存的数据划分、交叉分块、双缓冲优化和时间分块等结合的并行优化方案,有效解决了从核存储空间过小、访存带宽不足、数据重用低效等问题。选取2D-5P、2D-9P、3D-7P、3D-27P Stencil算例在SW26010处理器单核组上进行了优化实验,最高加速比可达132.05。2、提出并建立了面向国产异构众核处理器的Stencil计算性能模型。结合上述并行优化方案,分析Stencil计算并行程序的算法特征和访存模式,量化关键性能参数和程序运行时间之间的关系,进一步分析采用双缓冲时DMA传输时间和计算时间重叠的特征,得到全局性能模型。以SW26010处理器为实验平台,建立了相应的性能模型,并使用常见3D-7P、3D-27P Stencil算例进行了实验验证,得到性能模型平均误差约为10.97%,准确性较高。3、提出了面向国产异构众核处理器的Stencil计算自适应分块参数选择算法。基于性能模型对性能瓶颈的分析,进一步调整空间分块参数和时间分块参数,衡量冗余数据传输和冗余计算的开销,得到理论最优分块参数。通过将性能模型和分块参数调整方法结合,提出了面向国产异构众核处理器的自适应分块参数选择算法,并通过3D-7P、3D-27P Stencil算例验证了算法的有效性。

梁伟浩[9](2019)在《E级计算的存储系统突发数据缓存的I/O性能优化》文中认为超级计算机用于自然科学的很多关键领域中进行复杂系统的大规模计算和模拟。随着芯片技术的高速发展,到2020年超级计算机的性能将会达到EFlop/s(每秒百亿亿次浮点运算)。爆发性增长的计算能力同时也导致了科学计算模拟输出的数据规模激增,从而引发了对大型存储系统的高性能I/O需求。例如,在美国超算中心的系统上使用12万个核模拟计算3万亿个粒子的磁重联物理过程,每小时就会产生约100TB的数据。存储和检索如此大规模的突发性产生的数据会极大地影响这些科学应用的整体性能。当前集中式存储的I/O系统也难以提供足够的性能去充分满足极端规模的科学计算平台要求。为此,近年来学术界提出了突发数据缓存(Burst Buffer)结构:它在计算和存储节点之间添加了新型硬件如非易失性存储器作为缓冲层,支持对于大量突发性的I/O请求进行快速处理。但是针对突发数据缓存的设计仍面临许多问题,需要高效的系统软件与该新的存储架构相结合,来满足支持百亿亿次计算的科学应用所要求的极端并行性和性能需求。本文的工作旨在研究数据密集型科学应用在突发数据缓存系统中的I/O性能优化方法。通过分析应用的数据访问特征和存储需求动态调度分配缓存资源以减少应用之间的相互影响。通过异步数据传输实现跨存储层次之间的数据移动优化,从而提高应用的整体性能和存储系统的效率。本文的研究工作和成果主要包括以下三个方面:1.针对共享式突发数据缓存系统上的资源调度展开了研究。通过分析现有针对缓存节点的调度分配策略,发现多应用在共享访问缓存系统时会引发带宽竞争现象导致了应用的I/O性能下降。为了解决突发数据缓存节点的负载不均衡及应用性能瓶颈问题,本文提出了一种基于竞争感知的存储资源分配算法。通过在运行时中实现对应用的数据读写特征和资源需求的实时分析并根据缓存系统中的节点负载分布,该算法会动态分配合理的缓存节点来协调来自大量进程的高度并发I/O访问以最大化每个应用可获得的I/0带宽,降低进程之间的带宽竞争并平衡节点之间的I/O负载。为了进一步研究节点内带宽竞争的产生机制,本文提出了面向多进程并发I/O访问场景的性能模型和三种衡量指标以定量评估不同的调度策略分别对应用和缓存系统产生的性能影响。实验结果表明,相对现有的静态资源调度策略,所提出的竞争感知分配算法可以使应用的平均效率提高25%和突发数据缓存系统的带宽利用率提高20%。2.针对分布式突发数据缓存系统上的数据传输问题展开了研究。计算节点内独立的非易失性存储虽然能提供本地的高I/O带宽以快速处理应用的大量突发性I/O读写请求,但是计算结束后本地数据回传到外部存储系统的时间开销严重地影响应用的总体性能。为了解决这一问题,本文提出了一种自适应可扩展的异步数据传输优化策略。该策略通过在运行时中利用少量的计算核异步地在计算节点中统一地调度处理来自不同进程发出的I/O请求而不影响程序继续其计算,有效地将应用的计算阶段和I/O阶段交替并行地执行以达到隐藏数据传输延迟的目的。在所有计算阶段结束后,通过调用更多的空闲计算核对缓存在本地存储中的数据回传过程实现I/O并行传输优化,进一步降低数据传输的开销。实验结果显示,与默认的同步I/O模式对比,所提出的异步传输优化策略能使科学应用的数据传输时间减少30%。3.针对异构突发数据缓存系统中的数据调度问题展开了研究。由于异构缓存系统中存储介质的多样性,存储层次之间对于应用的I/O访问特征有着不同的性能表现,增加了数据移动的复杂性。本文提出了一种结构感知的动态I/O调度方案,通过运行时透明地在异构缓存系统中不同存储层之间自动地调度数据,加速科学应用的端到端I/O访问过程。本文提出了流量感知的调度优化方法,通过对在计算节点内的进程发出的I/O请求进行动态分流,以降低大量突发性写操作对节点本地缓存带来的带宽压力。针对跨存储层的数据移动问题,本文提出了干扰感知的I/O调度算法,通过将缓存数据动态映射到不同的存储目标以最大化所有存储层的利用率并减少共享缓冲层中应用之间的I/O干扰。实验结果表明,所提出的调度方法能使应用共享访问异构缓存系统时的I/O干扰降低一倍,程序总体性能获得了54%的提升。本文设计的一系列针对突发数据缓存系统的I/O性能优化技术方法解决了数据密集型科学应用在大规模超算系统上并发存储和访问数据所面临的一系列挑战。本文提出的缓存资源分配算法、异步数据传输优化策略和动态I/O调度方案可以作为一般方法论推广应用于其他存储结构。同时,对下一代E级超级计算机的存储系统的改进和软件生态建设也具有参考价值。

马皖王莹[10](2019)在《软件生态系统中的跨项目缺陷理解与分析技术》文中研究说明作为最受欢迎的开源代码仓库,GitHub以其特有的“社交编程”方式极大地促进了软件生态系统的发展。在GitHub软件生态系统中,下游项目依赖于上游项目提供的基础设施或功能组件,形成了复杂的项目间依赖关系。通过这些依赖关系,上游项目中的缺陷将其影响传递到下游项目中,形成软件生态系统中独有的跨项目缺陷。相比于项目内缺陷,跨项目缺陷影响范围更大,危害整个生态系统的健康;其处理过程更复杂,涉及多个项目开发者的协作;且由于一些影响仅暴露在下游,上游测试集无法捕获,导致其检测难度更高。随着GitHub的愈加流行和软件生态系统的高速发展,此类缺陷数量不断增加,其有别于项目内缺陷的特点导致已有的缺陷理解和分析结论以及检测修复等技术不再适用。然而当前软件生态系统和缺陷的相关工作仍缺少对该类缺陷的关注,尤其缺乏对其检测、诊断和修复过程的理解和特征总结,缺少适用于软件生态系统的跨项目缺陷检测和修复的支持技术与工具。因此,本文围绕GitHub软件生态系统中的跨项目缺陷理解和分析技术展开研究。具体而言,本文的第一项工作关注程序员处理跨项目缺陷时的应对措施,着重研究跨项目缺陷带来的两个难点:跨项目缺陷的根本原因追踪和多项目开发者协作,探索程序员在面对这两个难点时的惯常行为,并获取程序员处理跨项目缺陷时的技术与工具需求,用以启发后续工作并提供实证支持;然后,根据实证分析中获得的开发者需求,分别为提高跨项目缺陷修复质量和检测潜在跨项目缺陷设计相应的方法和工具。因而,本文的第二项工作是识别给定跨项目缺陷所影响的下游模块(方法或类)名单,以帮助开发者理解缺陷的影响范围和严重程度,从而与相应下游开发者沟通,提供令上下游满意的缺陷修复补丁;本文的第三项工作是设计适用于GitHub软件生态系统的跨项目回归测试框架,其目的是对一次上游代码修改挑选相关的下游测试用例以补充上游测试集,从而检测潜在的跨项目缺陷。本文的主要贡献总结如下:(1)为深入理解程序员如何应对跨项目缺陷,本文对其特有的表现形式——跨项目关联缺陷进行实证研究。跨项目关联缺陷是指报告到两个不同项目中具有因果关系的一对缺陷。该实证研究具体调查三个研究问题:1)跨项目缺陷根本原因追踪的难度;2)有助于跨项目根源追踪的因素;3)下游开发者配合上游修复的惯常行为。通过对GitHub上Python科学计算生态系统中的271对跨项目关联缺陷报告进行人工审查以及对116位程序员的在线问卷调查,本文总结了一系列开发者在跨项目缺陷诊断和修复过程中的惯常行为,并为缺陷追踪系统等工具的设计提出建议。(2)为识别跨项目缺陷具体影响哪些下游模块,本文提出了一个生态系统范围的跨项目缺陷影响分析方法。对于给定跨项目缺陷,已知其上游出错方法和缺陷触发条件,本方法首先通过生态系统范围的调用依赖分析识别使用该出错方法的下游候选模块(方法或类),然后通过符号分析将每个候选模块入口处到上游方法调用点的路径编码成符号约束,通过约束求解判断是否存在满足缺陷触发条件的下游模块输入。如存在,则该模块受给定缺陷影响。为验证该方法的有效性,本文实现了一个工具原型并在31个跨项目缺陷上进行实验。实验结果表明,该方法可以从25490个候选下游模块中共计找出1132个受这31个缺陷影响的模块;对于每个缺陷,平均剔除了 66.5%的不受影响模块,有效地减少了程序员的代码审查工作量。(3)为进行跨项目回归测试、检测潜在跨项目缺陷,本文提出了一个适用于GitHub软件生态系统的测试框架并设计了两步跨项目测试选择策略。测试框架由三部分组成:1)中心仓库,用以处理和存放细粒度的生态系统依赖网络、测试执行轨迹以及历史构建日志;2)两步测试挑选组件,用以挑选与一次上游修改最相关的下游项目和具体的下游测试用例;3)测试执行和反馈组件,用以生成特定于具体项目的测试脚本、执行测试并将结果通知给相关项目。两步跨项目测试选择策略首先基于项目在生态网络中的中心性和对上游被修改模块的依赖强度选择最重要的相关下游项目,然后提出基于上游方法覆盖率和基于上游文件中心性的测试选择策略,在下游项目中挑选能够补充上游测试集的测试文件。本文实现了一个GitHub集成工具,并在133个Python科学计算类项目上进行评估。对100次上游项目代码提交进行回归测试的结果表明,该测试框架能够有效地选择出可以补充上游测试集的下游测试用例。本文的研究结果有助于深入理解GitHub软件生态系统中的跨项目缺陷,所提出的支持技术与工具也能有效地帮助检测和修复此类缺陷,保障软件生态系统的健康发展。

二、科学计算软件开发框架的设计与实现(论文开题报告)

(1)论文研究背景及目的

此处内容要求:

首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。

写法范例:

本文主要提出一款精简64位RISC处理器存储管理单元结构并详细分析其设计过程。在该MMU结构中,TLB采用叁个分离的TLB,TLB采用基于内容查找的相联存储器并行查找,支持粗粒度为64KB和细粒度为4KB两种页面大小,采用多级分层页表结构映射地址空间,并详细论述了四级页表转换过程,TLB结构组织等。该MMU结构将作为该处理器存储系统实现的一个重要组成部分。

(2)本文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

三、科学计算软件开发框架的设计与实现(论文提纲范文)

(1)高性能计算数值模拟框架软件研究进展(论文提纲范文)

引 言
1 国外编程框架的研发进展
    1.1 结构网格框架
    1.2 非结构网格框架
    1.3 小结
2 国内编程框架的研发进展
    2.1 结构网格框架
    2.2 非结构网格框架
3 展望
利益冲突声明

(2)面向异构计算的高性能计算算法与软件(论文提纲范文)

1 典型高性能计算应用的核心算法与软件特征
    1.1 宇宙N体模拟
    1.2 大气与地球系统模式
    1.3 相场模拟微结构演化
    1.4 分子动力学模拟
    1.5 量子化学
    1.6 格点量子色动力学
2 共性问题的提炼及解决对策
    2.1 共性算法
    2.2 浮点计算精度
    2.3 海量数据存储及可视化
    2.4 软件框架设计
3 总结

(3)基于SiPESC平台与Tensorflow框架的联合优化策略研究(论文提纲范文)

摘要
Abstract
1 绪论
    1.1 研究背景与意义
    1.2 国内外相关研究现状与进展
        1.2.1 结构优化设计研究背景
        1.2.2 计算机辅助工程研发现状
        1.2.3 机器学习方法研究现状
    1.3 本文研究内容
2 SiPESC平台及SiPESC.OPT简介
    2.1 SiPESC平台简介
    2.2 通用集成优化模块SiPESC.OPT
        2.2.1 SiPESC.OPT架构与功能介绍
        2.2.2 通用优化问题描述
        2.2.3 SiPESC.OPT中 Python脚本的应用
    2.3 试验设计框架简介
        2.3.1 SiPESC.OPT中试验方法类说明
        2.3.2 试验设计的使用方法
    2.4 本章小结
3 典型回归模型分析与优化
    3.1 回归模型的实现与优化计算
        3.1.1 基于神经网络的回归分析模型
        3.1.2 Tensorflow框架中神经网络实现
    3.2 SiPESC.OPT与机器学习框架的联合优化流程
    3.3 典型数值算例分析
        3.3.1 Three-Hump-Camel函数算例
        3.3.2 Griewank函数算例
        3.3.3 Branin函数算例
    3.4 典型有限元算例分析
    3.5 本章小结
4 基于SiPESC.OPT的结构分析问题联合优化
    4.1 工程支架的形状优化
        4.1.1 工程背景与有限元模型
        4.1.2 基于SiPESC.OPT标准化数据簇的回归分析
        4.1.3 优化问题描述与求解
    4.2 关于海洋浮体结构的模态优化
        4.2.1 结构的复杂有限元建模
        4.2.2 基于神经网络的抑制过拟合模型训练
        4.2.3 优化求解与讨论
    4.3 电站检修平台最优化分析
        4.3.1 问题描述
        4.3.2 关于主次梁铺设位置的优化分析
        4.3.3 面向主次梁截面的尺寸优化设计
    4.4 本章小结
5 关于轨迹规划的联合优化求解
    5.1 多体动力学尺寸优化理论
    5.2 五连杆机构最优初始状态设计
        5.2.1 模型背景与计算
        5.2.2 最优化设计
    5.3 曲柄滑块机构轨迹优化
        5.3.1 曲柄滑块问题描述
        5.3.2 回归分析与优化计算
    5.4 本章小结
结论
参考文献
附录 A 试验设计脚本
附录 B 回归分析脚本
附录 C 模型重载脚本
附录 D 优化脚本
攻读硕士学位期间发表学术论文情况
致谢

(4)大规模数据实时绘制关键技术研究(论文提纲范文)

摘要
Abstract
第1章 绪论
    1.1 背景与意义
    1.2 研究现状
        1.2.1 体数据绘制
        1.2.2 大规模地理地形绘制
        1.2.3 反走样技术
        1.2.4 GPU绘制
        1.2.5 并行绘制
    1.3 本文工作
    1.4章节安排
第2章 性能挑战与评价方法
    2.1 引言
    2.2 性能瓶颈分析
        2.2.1 多线程绘制
        2.2.2 绘制瓶颈
        2.2.3 数据规模
    2.3 并行绘制性能
        2.3.1 负载平衡
        2.3.2 图像合成
        2.3.3 图像解压缩
    2.4 评价方法
        2.4.1 时间复杂度
        2.4.2 并行粒度
        2.4.3 空间复杂度
        2.4.4 绘制质量
    2.5 本章小结
第3章 数据并行化体绘制及光照计算
    3.1 引言
    3.2 体绘制
        3.2.1 体数据
        3.2.2 体绘制方程
        3.2.3 体绘制方法
    3.3 体数据光照计算
        3.3.1 体绘制全局光照
        3.3.2 单绘制遍多切片MSPP算法
        3.3.3 基于切片的光线投射SBRC算法
    3.4 体绘制并行化
    3.5 本章小结
第4章 大规模地形数据高效组织与绘制
    4.1 引言
    4.2 大规模地理地形数据
        4.2.1 数字高程模型
        4.2.2 数字正射影像
    4.3 可伸缩三维地理地形绘制
        4.3.1 算法概述
        4.3.2 关键步骤及实现
        4.3.3 实验结果与分析
    4.4 本章小结
第5章 数据绘制中的反走样技术
    5.1 引言
    5.2 反走样方法
        5.2.1 走样原因
        5.2.2 反走样基本思路
        5.2.3 主流反走样方法
    5.3 子像素连续边界反走样SRCE算法
        5.3.1 算法概述
        5.3.2 关键步骤及实现
        5.3.3 实验结果与分析
    5.4 一种大场景反走样绘制架构
        5.4.1 算法概述
        5.4.2 关键步骤及实现
        5.4.3 实验结果与分析
    5.5 本章小结
第6章 大规模数据并行绘制虚拟化框架
    6.1 引言
    6.2 并行绘制
        6.2.1 体系结构
        6.2.2 数据与绘制资源
        6.2.3 并行绘制框架
    6.3 PRVF框架结构
        6.3.1 绘制资源层
        6.3.2 并行绘制虚拟化层
        6.3.3 应用层
        6.3.4 实验结果与分析
    6.4 本章小结
第7章 总结与展望
    7.1 工作总结
    7.2 未来展望
参考文献
在读期间科研成果
致谢

(5)数据采集分析软件的设计与实现(论文提纲范文)

摘要
ABSTRACT
第1章 绪论
    1.1 研究背景与意义
    1.2 研究现状
    1.3 论文主要工作及章节安排
第2章 需求分析及系统总体框架
    2.1 系统需求分析
        2.1.1 需求分析
        2.1.2 功能模块规划
    2.2 软件总体框架
    2.3 本章小结
第3章 开发技术及工具介绍
    3.1 软件的核心开发思想
    3.2 通讯方式的选择
        3.2.1 通信方式选择
        3.2.2 通讯协议的选择
    3.3 开发工具的选择
        3.3.1 开发语言的选择
        3.3.2 界面开发框架的选择
    3.4 数据采集设备介绍
    3.5 本章小结
第4章 软件主要模块设计与实现
    4.1 数据采集模块的设计实现
        4.1.1 TCP/IP协议通信
        4.1.2 Modbus协议的通信
        4.1.3 多协议通讯模块的调用
        4.1.4 多通道数据采集与存储
    4.2 数据分析模块的设计实现
        4.2.1 功能需求分析
        4.2.2 功能函数库的封装实现
    4.3 插件式开发的实现
        4.3.1 插件管理器
        4.3.2 插件接口规范
        4.3.3 插件动态加载的实现
    4.4 共享服务器的搭建
    4.5 本章小结
第5章 软件界面设计及功能测试
    5.1 数据采集功能软件界面
        5.1.1 通讯参数配置
        5.1.2 采集数据实时显示
    5.2 数据分析功能软件界面
        5.2.1 函数库函数显示
        5.2.2 代码编辑器
        5.2.3 历史采集数据回看
    5.3 共享资源访问界面
    5.4 本章小结
第6章 总结与展望
参考文献
致谢
学位论文评阅及答辩情况表

(6)基于OpenMP/MPI的大规模标量场数据并行体可视化技术研究(论文提纲范文)

摘要
Abstract
1 绪论
    1.1 研究背景及意义
    1.2 体可视化研究现状
        1.2.1 体绘制
        1.2.2 体可视化系统
    1.3 大规模标量场体可视化研究现状
        1.3.1 并行体绘制
        1.3.2 C/S架构并行可视化
    1.4 本文研究内容与组织结构
2 大规模标量场数据体可视化基础
    2.1 体可视化理论基础
        2.1.1 体数据
        2.1.2 体绘制算法
    2.2 大规模标量场数据并行体可视化理论基础
        2.2.1 并行计算
        2.2.2 并行计算编程框架
    2.3 章末小结
3 基于线程并行的体绘制算法研究
    3.1 并行可见性排序算法
    3.2 并行四面体投影分类与拆分算法
        3.2.1 四面体投影分类/拆分归一化
        3.2.2 顶点数组偏移量计算
    3.3 三角形投影光栅化和渲染
    3.4 实验分析
        3.4.1 本文算法性能分析
        3.4.2 两层嵌套循环分析
        3.4.3 不同非结构网格体绘制算法性能对比分析
        3.4.4 执行时间分类分析
        3.4.5 可扩展性分析
    3.5 章末小结
4 基于进程并行的体绘制算法设计与实现
    4.1 并行数据分割算法实现
        4.1.1 KD树理论基础
        4.1.2 并行KD树体数据分割算法
        4.1.3 基于KD树的可见性排序算法
    4.2 体绘制图像合成算法实现
        4.2.1 颜色融合
        4.2.2 基于树的图像合成
    4.3 实验分析
        4.3.1 数据分割算法性能
        4.3.2 并行体绘制算法性能
    4.4 章末小结
5 松耦合的C/S并行体可视化系统设计与实现
    5.1 系统需求分析
        5.1.1 背景及用途
        5.1.2 功能需求
        5.1.3 性能需求
        5.1.4 技术需求
    5.2 系统设计与实现
        5.2.1 系统设计
        5.2.2 系统实现
    5.3 系统性能优化
        5.3.1 图片压缩/解压
        5.3.2 传递函数延时更新
        5.3.3 两层LOD模型
    5.4 系统测试与性能评估
        5.4.1 节点内并行性能
        5.4.2 跨节点并行性能
    5.5 章末小结
6 总结与展望
致谢
参考文献
攻读硕士学位期间发表的论文及科研成果

(7)计算密集型科学计算应用在多GPU平台上的并行化设计与实现(论文提纲范文)

摘要
abstract
1 绪论
    1.1 研究背景及意义
    1.2 研究目标与主要工作
    1.3 论文组织结构
    1.4 本章小结
2 相关工作
    2.1 多GPU平台的研究
    2.2 科学计算应用的并行化研究
    2.3 Open CL技术研究
    2.4 HAS
    2.5 ROCm简介
    2.6 本章小结
3 系统整体架构的研究及实现
    3.1 系统体系结构
        3.1.1 GPU模拟框架设计
        3.1.2 减少GPU间通信量方法
    3.2 系统部署及应用移植方法
        3.2.1 系统启动过程
        3.2.2 平台部署
        3.2.3 应用移植方法
    3.3 本章小结
4 多GPU平台上 k-means 算法的并行优化
    4.1 算法描述
    4.2 k-means的并行优化设计
        4.2.1 并行化分析
        4.2.2 针对初始化聚类中心的优化方法及实现
    4.3 实验分析
        4.3.1 控制变量实验结果
        4.3.2 实验结果对比
    4.4 本章小结
5 Sp MV算法并行优化
    5.1 算法描述
    5.2 并行优化方法
        5.2.1 并行化原理分析
        5.2.2 优化方法及实现
    5.3 实验分析
        5.3.1 各类格式下的性能对比
        5.3.2 矩阵划分后性能对比
    5.4 本章小结
6 基于TSP问题的蚁群算法并行优化
    6.1 基本原理
    6.2 蚁群算法的并行优化设计
        6.2.1 并行化分析
        6.2.2 基于计算密集部分的优化方法及实现
    6.3 实验分析
        6.3.1 参数调试
        6.3.2 实验结果对比
    6.4 本章小结
7 总结与展望
    7.1 工作总结
    7.2 展望
致谢
参考文献
攻读学位期间发表的学术论文及研究成果

(8)面向国产异构众核处理器的Stencil计算性能优化技术研究(论文提纲范文)

摘要
Abstract
第一章 绪论
    1.1 研究背景
        1.1.1 处理器发展历程
        1.1.2 Stencil计算面临的优化挑战
        1.1.3 基于申威处理器的高性能计算机
    1.2 研究内容及意义
    1.3 论文组织结构
第二章 相关技术研究
    2.1 SW26010 众核处理器架构分析
        2.1.1 体系架构
        2.1.2 存储模型
        2.1.3 编程模型
    2.2 面向异构平台的Stencil计算优化
        2.2.1 Stencil计算
        2.2.2 并行优化
        2.2.3 访存优化
        2.2.4 自动代码生成
    2.3 面向异构平台的科学计算核心性能建模
        2.3.1 分析型性能模型
        2.3.2 科学计算应用性能建模
        2.3.3 Stencil计算性能建模的挑战
    2.4 本章小结
第三章 面向国产异构众核处理器的Stencil计算并行优化
    3.1 二维Stencil计算优化
        3.1.1 适应局存的数据划分
        3.1.2 交叉分块
        3.1.3 双缓冲优化
        3.1.4 时间分块
    3.2 三维Stencil计算优化
        3.2.1 2.5D分块
        3.2.2 双缓冲优化
        3.2.3 时间分块
    3.3 优化结果及性能分析
        3.3.1 不同类型Stencil优化结果分析
        3.3.2 不同分块参数下优化结果分析
    3.4 本章小结
第四章 面向国产异构众核处理器的Stencil计算性能模型
    4.1 Stencil计算优化流程分析
    4.2 Stencil计算性能模型
        4.2.1 模型参数描述
        4.2.2 限制条件描述
        4.2.3 访存性能模型构建
        4.2.4 计算性能模型构建
        4.2.5 性能函数公式
    4.3 测试与分析
        4.3.1 测试算例及平台
        4.3.2 性能模型有效性评估
    4.4 本章小结
第五章 面向国产异构众核处理器的Stencil计算自适应分块参数选择算法
    5.1 自适应分块参数选择算法框架
    5.2 分块参数调优
    5.3 测试与分析
    5.4 本章小结
第六章 结论与展望
    6.1 工作总结
    6.2 未来展望
致谢
参考文献
作者简历

(9)E级计算的存储系统突发数据缓存的I/O性能优化(论文提纲范文)

摘要
ABSTRACT
第1章 绪论
    1.1 研究背景
        1.1.1 数据驱动的高性能科学计算
        1.1.2 E级计算系统的发展趋势
        1.1.3 大规模存储系统的发展趋势
    1.2 E级计算存储系统设计面临的挑战性问题
    1.3 本文主要研究内容
    1.4 论文组织结构
第2章 相关研究工作
    2.1 高性能存储系统结构
        2.1.1 近数据端计算架构
        2.1.2 突发数据缓存架构
        2.1.3 相关工作总结
    2.2 数据存储格式与I/O编程接口
        2.2.1 MPI-IO
        2.2.2 HDF5
        2.2.3 NetCDF
        2.2.4 相关工作总结
    2.3 I/O执行模式
        2.3.1 解耦合执行模式
        2.3.2 异步执行模式
        2.3.3 相关工作总结
第3章 竞争感知的共享式突发数据缓存分配算法
    3.1 引言
    3.2 相关背景介绍
        3.2.1 共享式突发数据缓存系统
        3.2.2 面向存储资源的调度分配
        3.2.3 动机
    3.3 基于竞争感知的存储资源调度方案
        3.3.1 运行时框架设计与实现
        3.3.2 竞争感知的节点分配算法
        3.3.3 性能模型分析
    3.4 实验评估
        3.4.1 仿真实验
        3.4.2 模拟实验
    3.5 本章小结
第4章 分布式突发数据缓存的异步数据传输优化策略
    4.1 引言
    4.2 相关背景介绍
        4.2.1 分布式突发数据缓存系统
        4.2.2 动机
    4.3 自适应可扩展的异步数据传输优化策略
        4.3.1 运行时框架设计与实现
        4.3.2 自适应的异步数据传输策略
        4.3.3 动态数据回传优化方法
        4.3.4 性能模型分析
    4.4 实验评估
        4.4.1 测试平台与测试程序
        4.4.2 实验结果与分析
    4.5 本章小结
第5章 结构感知的异构突发数据缓存的动态I/O调度方案
    5.1 引言
    5.2 相关背景介绍
        5.2.1 异构突发数据缓存系统
        5.2.2 动机
    5.3 结构感知的动态I/O调度方案
        5.3.1 运行时框架设计与实现
        5.3.2 本地缓存的流量感知调度方法
        5.3.3 跨存储层的I/O重定向策略
        5.3.4 基于干扰感知的I/O调度算法
    5.4 实验评估
        5.4.1 测试平台与测试程序
        5.4.2 实验结果与分析
    5.5 本章小结
第6章 结果与展望
    6.1 研究工作与结果
    6.2 主要创新
    6.3 下一步研究工作
参考文献
致谢
在读期间发表的学术论文与取得的研究成果
在读期间参与的科研项目

(10)软件生态系统中的跨项目缺陷理解与分析技术(论文提纲范文)

摘要
Abstract
第一章 绪论
    1.1 选题背景
    1.2 研究内容
    1.3 主要贡献
    1.4 论文结构
第二章 研究基础与现状
    2.1 软件生态系统与GitHub
        2.1.1 软件生态系统概述
        2.1.2 GitHub开源与协作
        2.1.3 现有研究的不足
    2.2 缺陷理解与修复
        2.2.1 项目内缺陷
        2.2.2 跨项目缺陷
        2.2.3 现有研究的不足
    2.3 回归测试
        2.3.1 回归测试技术
        2.3.2 持续集成环境下的测试
        2.3.3 跨项目测试
        2.3.4 现有研究的不足
    2.4 本章小结
第三章 跨项目关联缺陷的应对行为理解
    3.1 研究动机
    3.2 跨项目关联缺陷定义与识别
    3.3 程序员应对行为的实证研究
        3.3.1 研究对象
        3.3.2 研究问题
        3.3.3 研究方法
    3.4 应对行为研究结果
        3.4.1 缺陷根源追踪的难度
        3.4.2 根源追踪的有益因素
        3.4.3 下游的修复协作行为
        3.4.4 效度威胁
    3.5 应对行为讨论与启发
        3.5.1 协作中的两难抉择
        3.5.2 对工具设计的启示
    3.6 本章小结
第四章 下游项目受影响模块集自动分析
    4.1 研究动机
    4.2 缺陷影响分析的挑战
    4.3 影响分析方法的设计
        4.3.1 影响分析方法概述
        4.3.2 生态系统依赖分析
        4.3.3 模块级别影响分析
    4.4 影响分析方法的评估
        4.4.1 研究问题
        4.4.2 实验对象
        4.4.3 研究结果
        4.4.4 结果讨论
        4.4.5 效度威胁
    4.5 本章小结
第五章 上游项目回归测试集跨项目增强
    5.1 研究动机
    5.2 GitHub中的挑战与机遇
        5.2.1 GitHub中的挑战
        5.2.2 GitHub中的机遇
    5.3 跨项目测试框架设计
        5.3.1 测试框架概述
        5.3.2 中心仓库构建
        5.3.3 测试选择策略
    5.4 跨项目测试实证评估
        5.4.1 框架实施
        5.4.2 研究问题
        5.4.3 实验设置
        5.4.4 实验结果
    5.5 本章小结
第六章 总结与展望
    6.1 工作总结
    6.2 未来工作展望
附录
参考文献
攻读博士学位期间发表的论文及科研成果
致谢

四、科学计算软件开发框架的设计与实现(论文参考文献)

  • [1]高性能计算数值模拟框架软件研究进展[J]. 何连花,赵莲,姜金荣,金钟. 数据与计算发展前沿, 2021(06)
  • [2]面向异构计算的高性能计算算法与软件[J]. 徐顺,王武,张鉴,姜金荣,金钟,迟学斌. 软件学报, 2021(08)
  • [3]基于SiPESC平台与Tensorflow框架的联合优化策略研究[D]. 贾冬阳. 大连理工大学, 2021(01)
  • [4]大规模数据实时绘制关键技术研究[D]. 罗德宁. 四川大学, 2021(01)
  • [5]数据采集分析软件的设计与实现[D]. 张军. 山东大学, 2021(09)
  • [6]基于OpenMP/MPI的大规模标量场数据并行体可视化技术研究[D]. 范良. 西南科技大学, 2021(08)
  • [7]计算密集型科学计算应用在多GPU平台上的并行化设计与实现[D]. 王欣夷. 西南科技大学, 2021(08)
  • [8]面向国产异构众核处理器的Stencil计算性能优化技术研究[D]. 朱雨. 战略支援部队信息工程大学, 2021(01)
  • [9]E级计算的存储系统突发数据缓存的I/O性能优化[D]. 梁伟浩. 中国科学技术大学, 2019(02)
  • [10]软件生态系统中的跨项目缺陷理解与分析技术[D]. 马皖王莹. 南京大学, 2019(01)

标签:;  ;  ;  ;  ;  

科学计算软件开发框架的设计与实现
下载Doc文档

猜你喜欢