我正在用Python编写一个科学应用程序,其核心是一个处理器密集型的循环。我希望尽可能地优化这一点,将给最终用户带来的不便降到最低,他们可能会将其作为Python脚本的未编译集合,并将使用Windows、Mac和(主要是Ubuntu)Linux。在

它目前是用Python编写的,带有少量NumPy,我已经包含了下面的代码。在是否有一个不需要编译的快速解决方案?这似乎是保持平台独立性的最简单方法。在

如果使用像Pyrex这样需要编译的东西,有没有一种简单的方法可以捆绑许多模块,并让Python根据检测到的OS和Python版本在它们之间进行选择?有没有一种简单的方法来构建模块集合,而不需要访问每一个Python版本的每个系统?在

是否有一种方法特别适合于多处理器优化?在

(如果你感兴趣的话,这个循环是通过把附近大量磁性离子的贡献加在一起来计算晶体内某个给定点的磁场,这些离子被视为微小的条形磁铁。基本上是these的一个巨大的和。)# calculate_dipole

# -------------------------

# calculate_dipole works out the dipole field at a given point within the crystal unit cell

# ---

# INPUT

# mu = position at which to calculate the dipole field

# r_i = array of atomic positions

# mom_i = corresponding array of magnetic moments

# ---

# OUTPUT

# B = the B-field at this point

def calculate_dipole(mu, r_i, mom_i):

relative = mu - r_i

r_unit = unit_vectors(relative)

#4pi / mu0 (at the front of the dipole eqn)

A = 1e-7

#initalise dipole field

B = zeros(3,float)

for i in range(len(relative)):

#work out the dipole field and add it to the estimate so far

B += A*(3*dot(mom_i[i],r_unit[i])*r_unit[i] - mom_i[i]) / sqrt(dot(relative[i],relative[i]))**3

return B

python依赖平台吗_在Python中创建快速循环最依赖于平台和pythonversion的方法是什么?...相关推荐

  1. vb6调用python识别训练例子_在vb6中创建的“标准”dll在python中调用时会出现访问冲突...

    从vb6dll导出函数的最简单方法是使用vbAdvance add-in,现在它是免费软件.在 您面临的问题是,您需要在调用导出的线程上初始化VB6运行时.这包括初始化COM单元(STA).最简单的方 ...

  2. python 预编译加速_让Python代码运行更快的最佳方式

    Python因其强大.灵活且易于使用等特性,而赢得了声誉.这些优点使其在各种各样的应用程序.工作流程和领域中得到了广泛应用.但是就语言的设计,也就是它天然的解释能力还有它的运行时的动态性而言,Pyth ...

  3. Windows下在Django中创建项目时ImportError: No module named django.core解决方法

    Windows下在Django中创建项目时ImportError: No module named django.core解决方法 今天在对照<Python编程:从入门到实践>学## 标题 ...

  4. php volist中作判断,ThinkPHP模板中判断volist循环的最后一条记录的验证方法

    ThinkPHP模板中判断volist循环的最后一条记录的验证方法 对于用过smarty做过php开发的朋友来说,应该都知道在smarty模板里面判断foreach循环是否是最后一个可以用$smart ...

  5. python源码多平台编译_提升Python程序运行效率的6个方法

    Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情.不仅如此,它还能轻松地支持多任务,比如多进程等.Python批评者有时会说Python执行缓慢.本文将尝试介绍6个技巧, ...

  6. python 打印数组变量_使用Python将数组的元素导出到变量中(unpacking)

    下面就为大家分享一篇使用Python将数组的元素导出到变量中(unpacking),具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 最近工作中遇到一个问题,需要利用Python将数组(list ...

  7. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  8. python大数据论坛_干货 | Python+大数据计算平台,PyODPS架构手把手教你搭建

    数据分析和机器学习 大数据基本都是建立在Hadoop系统的生态上的,其实一个Java的环境.很多人喜欢用Python和R来进行数据分析,但是这往往对应一些小数据的问题,或者本地数据处理的问题.如何将二 ...

  9. 以下选项中python用于异常处理结构_《Python 程序设计》复习题

    目录 填空题 一.基础知识 二.序列 三.选择结构与循环结构和函数及面向对象.文件 选择题 一.Python 基础语法 二.基本数据类型 三.程序的控制结构 四.函数和代码复用 五.组合数据类型 六. ...

最新文章

  1. Docker | Docker技术基础梳理(五) - Docker网络管理
  2. goland 设置project gopath
  3. Fiddler+willow使用指南
  4. 12306的变态验证码算得了什么?我有Python神器!
  5. c语言字符串子串查找_字符串操作的全面总结
  6. 信息学奥赛一本通 提高篇 第六部分 数学基础 第1章 快速幂
  7. Java高并发入门-线程初步(二)
  8. jQuery 表单验证插件 jQuery Validation Engine 使用
  9. python 匿名函数添加判断_Python之内置函数、匿名函数
  10. python_paramiko模块
  11. 【Prison Break】第五天(4.1)
  12. Fiddler抓包工具之详细使用步骤(超详细)
  13. 使用SEGGER Jlink下载hex文件
  14. spring data jpa 动态查询Specification(包括各个In、like、Between等等各种工具类,及完整(分页查询)用法步骤(到返回给前端的结果))
  15. Android 阻止AlertDialog dismiss
  16. 《王者荣耀》手游产品分析报告:崛起的王者荣耀,胜负就是这么简单!
  17. 什么A股,B股,H股?什么是红筹股,蓝筹股?
  18. 输入一个四位数字x,分别求出x的个位数字、十位数字、百位数字和千位数字的值 ,并求个位、十位、百位、千位的和 -C语言
  19. logback系列之二:输出日志到文件
  20. 基于STC15系列单片机课程中讲到的汇编指令(一)

热门文章

  1. 咨询笔记:麦肯锡7步成诗
  2. 论文阅读课5-DocRED: A Large-Scale Document-Level Relation Extraction Dataset(大规模文档集关系提取数据集
  3. Java常见面试知识点:继承、接口、多态、代码块
  4. day52 Django全流程
  5. flannel无法跨主机ping通容器的解决方式
  6. php blog to explore
  7. MySQL安装之后没有MySQL数据库的原因
  8. Swift学习笔记-访问控制(Access Control)
  9. 2014-01-01
  10. Leetcode--24. 两两交换链表中的结点