Questions tagged «languages»

12
C ++与Fortran for HPC
在我的计算科学博士学位程序中,我们几乎只在C ++和Fortran中工作。似乎有些教授更喜欢另一种。我想知道哪个在某些情况下是“更好”的,还是一个在另一个方面要比另一个更好。
56 hpc  fortran  c++  languages 

4
“ Julia”科学计算语言项目的成熟程度如何?
我正在考虑学习一种用于数值/模拟建模项目的新语言,以(部分)替代当前使用的C ++和Python。我遇到了朱莉娅,这听起来很完美。如果它能完成它声称的一切,我可以用它来代替C ++ 和在所有项目中 Python,因为它可以访问高级科学计算库代码(包括PyPlot),并且可以以与C相似的速度运行循环。我还将受益于其他语言中都不存在的诸如适当的协程之类的东西。 但是,这是一个相对较新的项目,当前版本为0.x,我发现各种警告(在过去的不同日期发布)表明它还不能为日常使用做好准备。因此,我想立即获得有关该项目状态的一些信息(2014年2月,或每当发布答案时),以帮助我评估我个人是否应考虑在此阶段花时间学习这种语言。 我希望您能获得有关朱莉娅项目具体相关事实的答案。 ; 我对基于其他项目经验的观点不感兴趣。 特别是,Geoff Oxberry的评论表明,Julia API仍处于不断变化的状态,需要在代码更改时对其进行更新。我想了解一下这种情况的程度:API的哪些区域是稳定的,哪些区域可能会发生变化? 我想通常我通常会做线性代数(例如,解决本征问题),对具有多个变量的ODE进行数值积分,使用PyPlot和/或OpenGL进行绘图以及低级C样式数字运算(例如,用于蒙特卡洛模拟) )。朱莉娅的图书馆系统在这些领域是否得到充分发展?尤其是对于这些类型的活动,API或多或少是稳定的,还是我会发现我的旧代码在升级到新版本的Julia后会趋于破坏? 最后,在确定当前是否使用Julia进行认真的工作时,还有其他值得考虑的问题吗?

4
是什么使Fortran快速?
Fortran在数值编程中占有特殊的位置。您当然可以使用其他语言来制作优质,快速的软件,但是Fortran虽已发展多年,但仍然保持着出色的性能。此外,在Fortran中编写快速程序更加容易。我已经用C ++编写了快速程序,但是您必须更加小心指针别名之类的内容。因此,必须有一个原因,并且是一个非常技术性的原因。是因为编译器可以优化更多吗?我真的很想知道技术细节,因此,如果我使用另一种语言,则可以考虑这些因素。 例如,我知道-或我认为-有一件事是,该标准指定指针在内存中始终是连续的,这意味着更快的内存访问。我相信您可以在C ++中通过向编译器提供标志来做到这一点。通过这种方式,有助于了解Fortran的优势,因此,如果使用其他语言,我们可以效仿。

12
是否可以使用Octave学习MATLAB编程?
此问题是从“交叉验证” 迁移而来的,因为可以在“计算科学堆栈交换”上回答。 迁移 7年前。 我想学习MATLAB编程,这样我就可以自己进行一些研究/分析,也可以研究/修改一些我在网上找到的MATLAB脚本。 但是,问题是我买不起MATLAB。据我所知,GNU Octave与MATLAB兼容。但是,Octave面临的挑战是文档非常稀疏。 因此,一方面,MATLAB过于昂贵(-ve),但在线上却有很多不错的文档,教程和脚本(+),而Octave是免费的(例如在啤酒中),尽管(可以理解)它缺少全面的文档,等等。 。 我正在考虑下载和安装Octave,但要使用MATLAB文档(和脚本)来帮助我开始。我知道Octave和MATLAB之间存在一些差异-我想弄清楚的是,差异是否足够大以阻止我的努力(有效)“使用Octave学习MATLAB”。 欢迎任何建设性的反馈。

5
在教计算机编程本科课程时,我应该使用哪种语言?
打算教本科生一门名为“计算机编程入门”的课程。我有点困惑。在计算物理学中,科学家使用C / C ++或Python或Fortran,CUDA等。...现在是时候建立自己的基础了。我应该使用什么?我知道您可以在自己的生活中随时学习新的编程语言,但是对我来说,以后再详细介绍所有基本编程概念和OOP概念是一个明智的选择。

3
使用非常规编程语言进行科学计算
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 注意:以下文章可能包含有争议的观点,因此请注意,这些只是我的观点,并不旨在冒犯任何人。 从1999年左右开始,我就开始以某种形式进行编程。我最初使用R,后来在2004年左右使用,主要是改用Python。 例如,对于许多科学应用程序而言,仿真(包括MCMC等),R和Python都太慢,需要加快速度。这样做的通常方法是使用C或C ++进行扩展。对于R和Python,这就是我所做的,使用R的C API和C ++,以及Boost Python库和Python。 但是,由于各种原因,这种组合不是理想的解决方案。在编程中,特别是算法中,什么重要?表现力和速度当然是相关的。一门语言表现力越强,使用它就能写得越快。 1)就表达能力而言,我认为R和Python都不是编写科学算法的理想选择。它们没有紧密映射到基础算法。但是,它们都比C ++好得多。 2)我喜欢用Python编写,这是一种令人愉悦的语言,尽管如上所述,它并不是算法工作的理想选择。但是,当由于速度问题而不得不使用Python / C ++组合时,这种混合使用起来会变得不太愉快。通常会发生的事情是,我首先使用Python编写代码,一旦有了运行良好的东西,就常常发现它太慢了(因为某些主观值太慢了)。然后,我面临的决定是花一些不合理的时间用C ++重写它,还是忍受缓慢。事后看来,我常常会觉得自己最好还是忍受缓慢,特别是因为获得的加速是无法预测的。而且,两者之间的Boost Python接口是一个非常麻烦的维护工作,并用两种截然不同的语言将代码粘合在一起,这很让人分心。无需批评Boost Python,它就像一个人所能想到的一样强大的界面,并且几乎在大多数时候都可以使用。 现在,在一个拥有无限时间和资源的理想世界中,这些问题都不是什么大问题。但是,在我从事的科学项目中,我有以下经验。 无论我是否在该项目上有合作者,我似乎总是想尽一切办法进行计算。在总共5个重大项目中,我只有一个人的大量参与才能参与一个项目。一个人所做的不只是减轻体重;他做了我或更多的事情。但是,在所有其他情况下,包括具有多个合作者的项目,我已经(实际上)完成了所有计算工作。虽然我可以说我并没有受到最好的合作者的祝福(这似乎是懒惰和无能的结合),但我不清楚这种情况在将来是否有可能改变。 计算科学工作是一项巨大的工作,如果我不能改变合作者的行为方式,那么我可以改变工作方式。最重要的改进是更快地完成工作。这使我想到这里的主要考虑因素,那就是将语言切换到非正统的东西可能会有所帮助。根据过去的研究,按可能性顺序排列的最可能的候选对象是Common Lisp和Ocaml。我已经考虑了多年,但是最近一直在认真考虑。 据我所知,很少有人使用CL或Ocaml进行科学计算。在搜索此站点时,我发现有两个引用CL(一个是我的),另一个引用了Ocaml(我的)。多年来,我与那些在边缘工作的冒险人士保持了令人鼓舞的联系。2008年,我遇到了Tamas K. Papp对彼得·塞贝尔(Peter Seibel)的“ Practical Common Lisp”(我拥有)进行的书评。这引起了我的注意,因为这是我在网上遇到的为Lisp进行的科学计算中为数不多的提及之一。我写信给塔马斯(Tamas),他立即给予了帮助和鼓舞。引用他 使用Lisp,我的编程效率可能提高了十倍,但这花了大约一年的时间,而且我还在学习(尽管两个月后我的表现还不错)。因此,如果您的工作时间紧迫,请推迟切换。 您应该考虑问问有关cll的问题,我不是唯一知道这些事情的人,其他人也在Lisp上进行科学计算。 他还拥有一个博客和一个GitHub页面。 我曾与之短暂通信的另一个人(2006年12月)是Ira Kalet,他在放射肿瘤学领域使用了Common Lisp。 也许还有其他人在Lisp上进行科学计算,但我不认识任何人。 人们用CL引用的最常见问题是缺少库。这在通用计算中是一个严重的问题,但在科学计算中可能不是那么严重,特别是从根本上实现算法时。具体来说,我大部分时间都可以使用基本的数学库,包括概率分布函数,多维数组库以及C ++和Python标准库中的基本容器集,例如地图,集合,列表等。 我对Ocaml的了解甚至少于对CL的了解,但可以选择替代。它据说非常快,由法国研究人员免费实施,并且似乎是ML系列科学计算中最可行的。 最后,我想知道其他人是否对此有经验,他们有什么想法(如果有)。 编辑:在我上面讨论的问题的背景下,我对第一手经验最感兴趣。例如,如果您曾经使用Python和C ++(或R和C ++)并转而使用一种比较晦涩的语言,那么我最有兴趣了解您的经历。
22 languages 

6
我应该为计算科学学习哪种语言?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。没有足够详细信息的答案可以被编辑或删除。 我对计算科学的概念完全陌生,并且正在寻找一个良好的起点。 我知道没有客观上最好的语言,但是我想学习一门在计算科学方面毫无疑问地强大和突出的语言-一种被认为具有卓越能力和效率的语言。 首先,我倾向于与原子键合和相互作用有关的建模,需要图形表示/模拟。 在某些领域,某些语言是否倾向于比其他领域更好(即物理与纯数学)?还是基于其他因素选择语言? 我听说过很多名叫Fortran的名字。 有什么建议吗?
11 languages 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.