14_如何选择计算环境和开始计算

内容摘要:科研离不开计算,搭建合适的计算环境可以提高解决问题的效率。这里谈到的计算环境可以分为软件环境和硬件环境。从汇编到高级语言,从手机到超级计算机,共同构成了可解决多种需求的计算基础资源。今天我们聊聊如何选择...

1、Matlab还是Python?

基于云平台的软硬件生态系统不断地改变着传统的数据处理与分析模式。以Hadoop和Spark为代表的大数据分析工具和实现卷积神经网络(CNN)等AI算法的Tensorflow,Pytorch框架,这些大数据和人工智能领域的最新技术应用,都具有一定的平台依赖性。

如果你熟悉从Fortran到Matlab等不同语言的各种编程体验,会发现使用Fortran这类语言写程序,你需要考虑很多事情,小到每步计算中的数组大小分配,大到如何通过MPI接口协调多个进程之间的信息交互。优点是一旦程序写好,计算效率高。

而在Matlab等高级语言出现后,在各种工具包的加持下,解决很多复杂的计算问题都不是事了。但遗憾的事,Matlab的软件许可真的非常昂贵。看过前面文章的小盆朋友们知道,我很推荐Python,对!我认为现在如果你刚开始科研生涯,可以毫不犹豫地从python开始

上来就开始解决核心的科研问题,比整天捣鼓那些别人已经做的很成熟问题强。现在的很多大数据和AI分析基础平台,都具有平台依赖性,对用户具有较高的技术门槛要求,学习曲线陡峭把时间花在刀刃上更好!

特别是对于研发阶段技术成熟度还不高的科研原型化成果,更需要大量的调试和多用户协作,需要具有代码管理、日志查看、支持自动集成和部署特性的一体化平台系统支撑。这也是我们前面写这些短文来一点点介绍的目的。

2、大数据与HPC计算环境

近年来随着大数据和人工智能等技术的发展,地球物理数据处理与应用模式也正在逐渐地发生深刻地变革。面向数据分析、技术研发、应用的生态系统平台在架构上存在较大差异(图1)。

图1 数据分析与计算密集型生态架构对比

在大数据分析和AI模型训练的应用场景下,由于对进程之间通信的要求不高,所以天然适合GPU类型的计算框架。我们知道由于发热量问题和光速极限,单核CPU的主频提高受到了限制,随之而来的解决方案是多核。现在一个CPU之内的核越来越多,但如也需要你的程序能合理地用好多核资源。

我曾经对比过在Matlab和Python的Numpy下,来求解大规模线性方程组问题,CPU内的多核会自动加速,用户不用去考虑如何实现的。

谈到并行我们知道常见的有MPI和OpenMP两种,MPI最早用于HPC应用的节点之间通信,有很多版本。对于CPU内的多核,OpenMP这种单节点内的并行方案更适合。到了GPU时代,在一个计算核心中,有了更多的小核心,虽然每一个核心的计算能力远不及CPU,但是对于可线性分解的问题在GPU上就可以大幅加速。

一句话总结:根据你面临的问题合理选择计算环境,没有那个环境绝对的好坏,只有适合你的才是最好的!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速...
    Michael_Johnson阅读 7,919评论 0 4
  • 只思考本质的方法叫简单思考。作者说的“简单”,其实是“简化”。 1、误区:想太多 多数人的思考是觉得这也重要、那也...
    鷇音bird阅读 264评论 0 0
  • 在《战国策·触龙说赵太后》中有一句话,读来让人颇为受益:“父母之爱子,则为之计深远。”这千古名句贯穿了《知否知否,...
    苗璃书阅读 384评论 0 1
  • 27岁的最后一个晚上,异常的平静,这一年来过的心酸也过的转瞬即逝,不算最难捱,印象里最难捱的是23岁老马走的那一年...
    ichbinelf阅读 312评论 0 0