当前位置:  开发笔记 > 编程语言 > 正文

管理科学计算软件的语言

如何解决《管理科学计算软件的语言》经验,为你挑选了4个好方法。

科学计算是算法密集型的,也可能是数据密集型的.它通常需要使用大量内存来运行分析并在继续下一个之前释放它.有时它还使用内存池为每次分析回收内存.托管语言在这里很有趣,因为它可以让开发人员专注于应用程序逻辑.由于它可能需要处理庞大的数据集,因此性能也很重要.但是我们如何使用托管语言控制内存和性能呢?



1> knatten..:

Python最近在科学计算方面变得非常重要.它是一种托管语言,因此您不必记住释放您的记忆.同时,它具有科学和数值计算软件包(NumPy,SciPy),它为您提供与编译语言类似的性能.此外,Python可以很容易地与C代码集成.

Python是一种非常富有表现力的语言,比许多传统语言更容易编写和阅读.它在某些方面也类似于MATLAB,使得科学家比C++或Fortran更容易使用.

在奥斯陆大学最近已经开始教学Python作为信息学(谁仍在学习Java)的部门之外的所有的理科学生的默认语言.

模拟研究实验室,主要用于科学计算,偏微分方程等,广泛使用python.


我认为OP希望自己编写新的高性能代码,而不仅仅是从Python调用别人的代码.
Python可能足以调用用高性能语言编写的现有代码,但显然完全不适合编写高性能代码,这是本问题的主题.
这正是NumPy和SciPy正在发生的事情.它们在C语言中实现,包含在python模块中,并且与等效的C代码大致相同.所以我认为我的答案仍然相关,而且根本不够.

2> Guvante..:

你问的是一个根本上有缺陷的问题.托管语言的全部意义在于您不处理内存.这是由垃圾收集器处理的,虽然您可以采取某些措施以更好地使其以有效的方式完成工作,但是您的工作不是您的工作.

在性能不受您控制的世界中,您可以采取的措施可以提高性能.确保不要持有您不需要的参考文献.如果您需要对情况进行更多控制,请使用基于堆栈的变量.



3> Steve Steine..:

F#似乎有点针对这些观众.科学家实际上有一本名为F#的书.

这个问题也在Lambda the Ultimate上被问到了.



4> Adam Davis..:

您可能会对使用Matlab的人数感到惊讶,因为它可以被认为是一种编程语言并且当然管理自己的内存(支持大量数据集等),所以它应该被认为是一个解决方案.

此外,它会生成程序代码(可能需要一个单独的插件?),所以一旦你得到一个你想要打包的算法,你可以让它生成C代码来执行你最初​​在M脚本或simulink模型中的工作.

-亚当

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有