【发布时间】:2011-07-17 06:46:12
【问题描述】:
我正在开发一种工具,用于对用户定义的函数进行一些数值分析。 这个想法是在 Python 中制作一个方便的 UI,用户可以在其中输入 C 函数,然后按下一个按钮 - 并接收一些输出数据。 计算可能需要几分钟或几小时,因此仅 Numpy 的性能是不可接受的。
我尝试了以下方法:基于 Python 的 UI 调用 gcc,从用户函数编译 dll,而不是在 Cython 包装中我的基于 C 的核心算法使用。它可以工作,但是由于无法完全卸载python模块,所以我无法重新编译用户定义的函数,直到整个UI程序关闭并再次运行。
我现在看到的唯一方法是将计算核心和 UI 进程分开,然后让它们通过共享内存/消息传递进行交互。当用户想要更新他的功能时,程序终止内核,重新编译dll并再次启动内核。
您能建议在这种情况下的任何常见做法吗?
谢谢!
【问题讨论】:
标签: python c jit scientific-computing cython