2006年4月28日上午10:00,著名高性能计算专家、北京飞箭软件有限公司总经理梁国平研究员做客赛迪网,就高性能计算与我国信息化建设与发展等话题与网友们进行了交流和互动。以下为访谈摘录:
程鸿:有限元计算在高性能计算中占有什么位置?与其它数值方法相比它的特点是什么?
梁国平:现在数值仿真大部分都属于求解偏微分方程,目前求解偏微分方程的主要方法有三种,差分法、有限元法和有限体积法,与其他的数值方法相比,有限元和有限体积尤其是有限元方法应用最为广泛,所以采用有限元方法编制的软件占据非常重要的位置。
程鸿:您所研究的有限元程序自动生成系统究竟起到什么样的作用呢?
梁国平:我们刚才谈到高性能软件开发的种种困难,如果我们用传统的方法追赶,一是时间上已经比人落后了很多,另外也会受到国外相应专利的制约,很多并行的软件我们是得不到的,只有个别的并行软件像天气预报可以得到,尤其是军事方面、军工方面更是那些软件不可能卖给我们。
梁国平:软件编制要有自己新的模式,要有自己采用一种创新的模式来做应用软件。我从83年开始研究的有限元自动生成的目标是什么呢?就是说只要给出有限元问题,比如给了偏微分方程,给了求解的算法,那我们这个系统就能自动生成全部的程序,不需要用户再编写有限元程序。广义来说它是提供某种模型语言,我们就叫做有限元语言,用户通过这种模型语言来编写程序,通过一个生成器产生全部的程序,这种程序一般是高级语言程序,比如C和FORTRAN语言程序,用来求解问题的高级语言的计算程序。这个方式简单的说自动生成系统是一个生成程序的程序这样的系统。它有什么好处呢?就是把你编程的工作量大大减轻。我们知道要写一个微分方程表达式和算法是非常简短的,比如说几十行就可以完成了,但生成的代码可能是几百行甚至几千行的数量。我们知道衡量一个软件的效率比如编译器的效率主要看能否提高人的工作效率,因为你用高级语言写的代码和生成机器代码比较,它的代码量差了10倍以上,所以能把人的工作效率大大的提高。
梁国平:针对有限元这个特殊的领域,采用这种模型语言和生成器的方式,可以大大的提高这个软件的作用。这个模式和以前编写的形式是完全不同的,第一它代码量非常少,所以它是投入的资金很少,时间可以很短,效率可以很高,并且水平也很高。水平高体现在什么地方呢?过去那些软件写好了程序,你要求解了偏微分方程,如果新研究一个偏微分方程,一个新的模型,一个新的方法那么还要重新编这个程序才能让你用,你使用的通用软件不可能再给你编这个程序,所以不能用了。而采用模型语言、有限元语言不管什么都可以把偏微分方程写出来。它能够解决各种各样问题,它的应用面要比现有的通用软件广得多。从我目前的情况来看所有的问题,所有的偏微分方程只要用有限元求解的都可以。更重要的是采用这种语言编程不需要考虑它是用串行机,还是并行机,采用什么方式做计算。这个系统我们最近的研发出来的并行版可以让它直接生成并行机所需要的并行程序。所以就免去了大家编程的困难,分布式并行机编程是非常非常困难的,一般人很难适应,如果用我们的有限元语言编程的话就完全不用考虑这个问题了。所以这样一来对高性能计算的普及和并行计算的普及是非常好的,因为大家不需要考虑并行程序的编写了。
梁国平:对于我国的高性能发展来说,最重要的就是发展软件,尤其是应用软件,各行各业的高性能计算应用软件是我们国家乃至全世界最关键的问题。但如何发展这些软件呢?是按照过去的方式投入大量的时间、资金、很长周期来做?还是时间短、效率高、水平高这样的模式呢?我们现在提出了自己认为比较好的模式就是模型语言和生成器的做法。这种办法不仅仅局限于有限元方法,实际上我们的系统现在包括了有限元方法、有限体积法和有限差分法。有限元和有限体积法从科学工程计算软件来说大家公认是最复杂的规模最庞大的软件。这样的软件如果我们能够采用生成器和模型语言,有限语言这样的形式来做的话,我觉得其他领域一样也可以做,当然不同领域会有不同的模型语言,会有不同的生成器,我们不能想象有一种新的语言能够比目前的高级语言的编程效率还提高一个数量级,同时这种语言又没有任何限制。过去人们都在追求这样的做法,目前来看没有一个成功的。但如果针对领域提供一种新的模式,像我们提到的模型语言,再配合生成器来产生软件的话我觉得这个模式把软件的效率提高一个数量级是完全可以做得到的。(T121)