科学计算

来源:ob欧宝官网

阅读 22
发布时间 2021-10-20 09:37:27

  声明:,,,。详情

  科学计算是指利用计算机再现、预测和发现客观世界运动规律和演化特征的全过程。科学计算为解决科学和工程中的数学问题利用计算机进行的数值计算。

  科学计算即是数值计算,科学计算是指应用计算机处理科学研究和工程技术中所遇到的数学计算。在现代科学和工程技术中,经常会遇到大量复杂的数学计算问题,这些问题用一般的计算工具来解决非常困难,而用计算机来处理却非常容易。

  自然科学规律通常用各种类型的数学方程式表达,科学计算的目的就是寻找这些方程式的数值解。这种计算涉及庞大的运算量,简单的计算工具难以胜任。在计算机出现之前,科学研究和工程设计主要依靠实验或试验提供数据,计算仅处于辅助地位。计算机的迅速发展,使越来越多的复杂计算成为可能。利用计算机进行科学计算带来了巨大的经济效益,同时也使科学技术本身发生了根本变化:传统的科学技术只包括理论和试验两个组成部分,使用计算机后,计算已成为同等重要的第三个组成部分。

  建立数学模型就是依据有关学科理论对所研究的对象确立一系列数量关系,即一套数学公式或方程式。复杂模型的合理简化是避免运算量过大的重要措施。数学模型一般包含连续变量,如微分方程、积分方程。它们不能在数字计算机上直接处理。为此,先把问题离散化,即把问题化为包含有限个未知数的离散形式(如有限代数方程组),然后寻找求解方法。计算机实现包括编制程序、调试、运算和分析结果等一系列步骤。软件技术的发展,为科学计算提供了合适的程序语言(如Fortran、ALGOL)和其他软件工具,使工作效率和可靠性大为提高。

  从70年代初期开始,逐渐出现了各种科学计算的软件产品。它们基本上分为两类:一类是面向数学问题的数学软件,如求解线性代数方程组、常微分方程等;另一类是面向应用问题的工程应用软件,如油田开发、飞机设计。

  计算机的科学计算能力仍然有限,例如在天气数值预报方面只能进行中、短期预报,在飞机气动力设计方面只能分部件进行,在石油勘探方面只能处理粗糙的数学模型。为要进行长期的天气数值预报、整体的飞机气动力设计和在石油勘探中处理更精确的数学模型,都必须配备更强大的计算机。许多基础学科和工程技术部门已提出超过现有计算能力的大型科学计算问题。这些问题的解决,有赖于两方面的努力:一是创造出更高效的计算方法,一是大大提高计算机的速度。

  什么是科学计算? 粗略地说,科学计算是指利用计算机再现、预测和发现客观世界运动规律和演化特性的全过

  程,包括建立物理模型,研究计算方法,设计并行算法,研制应用程序,开展模拟计算和分析计算结果等过程,图1 是一幅表示科学计算过程的流程图,用这个图来说明作者对科学计算的理,要做科学计算。有了研究对象, 要针对其主要特征,抓住主要矛盾,建立物理模型,所谓物理模型就是描述研究对象的一组方程以及约束方程组的初边值条件,还有相应的物理参数,有了物理模型,需要采用与物理模型相适应的计算方法与算法,研制应用程序.所谓应用程序,形象一点说就是计算机语言编写的小说。对于科学计算,经常使用的计算机语言有FO RT RAN 语言和C 语言。应用程序在计算机上进行运行,也就是利用计算机进行计算、求解方程组, 获得方程组在特定约束条件下的解.与解析理论得到的方程或方程组的解不同,计算机求得的解不是一个表达式或一组表达式,而是一个数据集———海量数据集。有了数据, 需要对数据进行分析和评估,判断结果的正确性, 发现新的现象, 总结新的规律, 认识新的机制, 再现和预测研究对象的运动规律和演化特性, 进而进行真实实验或产品的理论设计, 产生新的知识、新的成果、新的生产力.我们经常听到计算机仿真这个说法.实际上, 科学计算的本质不是仿真而是求真.在科学计算的流程中, 应用程序研制之前的工作主要依靠研究人员, 是“人脑”的事情.应用程序之后的工作不仅仅依靠研究人员, 还需要有计算机硬件作为基础与前提, 是“人脑”加“电脑”的事情.高性能的计算机系统和数据分析处理系统是做好科学计算的必要条件, 是科学计算的重要组成部分.特别要强调的一点是, 对于科学计算来说, 电脑是不可或缺的, 但是只有充分发挥了人脑的作用, 才能最大限度地发挥电脑的作用, 才能做好科学计算,达到科学计算的根本目的.从流程图1 的分析, 我们还可以看到, 科学计算需要物理、数学与计算机等方面人才的合作,需要多学科交叉融合.只有物理建模、计算方法、并行算法、程序研制和高性能计算机等方面有机结合,物理、数学与计算机等学科的人员真正融合, 才能做好科学计算。

  传统的理论研究是以解析分析的方法为主, 它在科学原理与体系的建立过程中发挥了重要的作用, 并可以解决相对简单的问题, 例如线性问题、平衡问题.但是, 随着问题复杂性的增加, 理论研究的局限性也越来越明显.很多问题, 如强非线性问题、非平衡问题、实际应用中发生的问题等, 传统的理论研究已经无能为力.与理论研究相比, 科学计算不仅能够处理线性问题、平衡问题, 更重要的是能够处理强非线性问题、非平衡问题等, 能够把科学的原理应用于解决更多、更复杂的实际问题 .科学计算经常也被称为计算机虚拟实验.与实验研究相比, 科学计算至少有以下三个特点:一是无损伤.也就是说, 科学计算不会对环境等产生大的影响, 这一优点使得科学计算能够承担真实实验不能完成的事, 例如要研究海啸的破坏、地震的破坏、核爆炸的破坏,人类不可能进行真实实验, 但可以进行科学计算, 进行计算机虚拟实验.二是全过程、全时空诊断.真实的实验, 无论用多少种方法、多少种仪器, 获得的系统演化的信息是非常有限的, 难以做到全过程、全时空诊断.而全过程、全时空的信息对于人们认识、理解与控制研究对象极为关键.与真实实验不同, 科学计算完成可以做到全过程、全时空诊断.只要在应用程序中加入相关的输出程序, 在进行科学计算时, 研究人员就可以根据需要获得任何一个时刻、任何一个地点研究对象发展和演化的全部信息, 使得研究人员可以充分了解和细致认识研究对象的发展与演化,三是科学计算可以用相对低成本的方式, 短周期地反复细致地进行, 获得各种条件下研究对象的全面、系统的信息。

  科学计算能力包括计算机硬件设备和应用软件及支撑软件的算法的能力。2005 年美国总统信息技术咨询委员会报告指出:“尽管处理器性能的显著增长广为人知,然而改进算法和程序库对于提高计算模拟能力的贡献是如此之大,如同在硬件上的改进一样。”以在科学计算应用中广泛出现三维拉普拉斯方程计算求解为例,从上世纪50 年代的高斯消去法到80 年代的多重网格法,算法的改进使计算量从正比于网格数N的7/3 次方下降到最优的计算量正比于N,对于N等于100 万,计算效率就改进1 亿倍!2009 年出版的美国世界技术评估中心WTEC报告中对1998—2006 年获著名超级计算Gorden Bell 奖的应用程序进行了评估,指出尽管获奖程序的应用领域各不相同,但共同点是,算法(线性代数、图剖分、区域分裂、高阶离散)的进步使得获Gorden Bell 奖应用程序对计算能力提高的贡献超过摩尔定律。

  当前科学计算所要解决的数值模拟问题往往非常复杂,给数值方法研究带来了巨大的挑战。数值方法研究目前面临的突出共同难点表现为:高维数、计算规模大、多时空尺度、强非线性、不适定、长时间、奇异性、几何复杂、高度病态、精度要求高等,并非有了高性能计算机就可以解决这些难点。数值模拟的困难常常表现为规模大得难以承受或失去时效;算法不收敛或误差积累使结果面目全非;花费大量计算机时却得不到结果或只得到错误结果;由于问题的奇异性使计算非正常中止;问题太复杂使算法难以实现等。这些难点问题近年来受到广泛关注,已成为科学计算的研究热点。

  当前高性能计算机体系结构日趋复杂,CPU/GPU 异构、数千计算结点、结点内多处理器、处理器内多核、核内多功能部件及多级存储是其显著特点,对应用软件的研制提出了挑战。当前,我国科学计算应用软件的研制面临两大瓶颈:第一,计算效率低,应用程序通常只能发挥数百处理器核峰值性能的10%以下;第二,研制周期长,与高性能计算机的快速发展不匹配。不突破这两个瓶颈,我国并行应用软件的研制就很难在总体上跟上高性能计算机的发展速度,无法将计算机技术的进步有效地用于科技创新,无法在国家重大应用领域发挥其应有的价值。

  为了突破“计算效率低”和“研制周期长”两大瓶颈,近年来我国科学工作者根据并行应用程序的多层软件体系结构,提出了“集成共性、支撑个性”的新型并行软件研制方法,在此新思路下,研制成功三维并行结构自适应软件框架JASMIN 和三维并行自适应有限元软件平台PHG,这两个平台在基础性共性算法(例如网格自适应和数百处理器核上的求解器)层次上对用户屏蔽并行实现细节,并较好地解决了自适应并行实现中的负载平衡难题,在数10 万亿次国产并行计算机上,实现了高效并行计算。

  在框架和平台的支撑下,各专业领域的科学计算研究人员可以集中于物理模型和计算方法的创新研究,无需了解并行计算的细节,就可以将新的物理模型和计算方法快速融入到大规模并行计算中,而计算机系统的研究人员,则可以集中于更高速度和更大规模计算机系统的研制,而无须顾及实现具体科学和工程计算的细节。

  高性能科学计算应用软件的重要特点是多学科交叉,它是数学、物理、力学等基础学科和相应应用学科及计算机软件技术相结合而形成的以算法为核心,以计算机系统为支撑的知识密集型集成化信息产品,领域专业性非常强,只有建立高水平的多学科交叉研究队伍,针对实际科学问题经过长时间的积累和沉淀,才能研制成功。

  高水平的计算科学软件需要先进的算法,我们建议在国家重大科技项目执行中能特别重视高性能计算科学软件的自主研制,鼓励更多的计算数学工作者深入科学计算中的瓶颈问题如材料计算、流体计算、电磁场计算、辐射流体力学计算、纳米计算和生物计算中的算法研究、多尺度模型的分析与计算以及非平衡态的计算等,算法的创新要结合适合于计算的模型进行研究。

  陈志明. 科学计算:科技创新的第三种方法[J]. 中国科学院院刊,2012,(02):161-166.

上一篇:什么是科学计算科学计算就是数值计算吗? 下一篇:冷水江项目运营偿债能力数据分析价格【鼎莱大数据】