MetaGen

MetaGen

V2EX 第 113047 号会员,加入于 2015-04-23 23:28:48 +08:00
MetaGen 最近回复了
152 天前
回复了 MetaGen 创建的主题 Python 高效灵活的数学优化建模语言: PyOptInterface
@yenkn 碰上懂行的 v 友了,对于 ipopt 的支持我们也做了,只不过文档还没写,可以先看一下 https://github.com/metab0t/PyOptInterface/blob/master/tests/test_nlp.py 这个测试的例子。

我们的思路也是使用 jit 来生成计算函数值和计算导数的代码,使用了 CppAD 做自动求导+手写的 LLVM IR 或者 C 代码生成+llvmlite 或者 Tiny C Compiler 做代码即时编译。CppAD 的性能本身就很快,而且 PyOptInterface 使用了注册非线性函数+复用的方式,对于同样结构的非线性函数只需要编译一次,很适合具有大量相似非线性结构的优化问题。我猜测你提到的速度很慢一方面是 sympy 速度慢,另一方面是因为对大规模优化问题的所有约束直接自动微分+代码生成会有效率上的问题。

至于生成 C++ header/source 的需求,我没太明白意思,因为最终还是要调用求解器的底层 API ,没办法生成 dependency free 的代码。
152 天前
回复了 MetaGen 创建的主题 Python 高效灵活的数学优化建模语言: PyOptInterface
@dayeye2006199 是的,仅测量了创建模型的速度,因为求解问题的速度仅取决于求解器,和建模语言无关。
153 天前
回复了 MetaGen 创建的主题 Python 高效灵活的数学优化建模语言: PyOptInterface
@chizuo

优化建模语言是负责建立模型的,是求解器接口的上层抽象,最终还是需要调用底层求解器(如 Gurobi 、COPT 、HiGHS 等)去求解。

不过在建模性能方面,PyOptInterface 也是比 Gurobi 自带的 Python 接口要快的。至于求解问题的速度,这个取决于调用的求解器,像 Gurobi 等商业求解器速度都比较快。
后端的服务是不算 distribution 的,除非你把软件分发给了别人,又不是 AGPL
想要真正的等宽字体就用 Noto Sans Mono 或者 Inziu Iosevka 吧,雅黑和 consolas 混在一起感觉不伦不类
2017-02-26 20:23:41 +08:00
回复了 explist 创建的主题 Python PY 的 C 扩展疑问
用 cffi 多简单,为啥要用 CPython 的接口
2016-12-24 00:11:03 +08:00
回复了 markme 创建的主题 Java Java GPU 加速
不建议用 Java 搞这种 native 的东西, JNI 的开销其实相当大。
还是等到 Project Panama 出来再去考虑吧。
http://openjdk.java.net/projects/panama/
2016-10-26 20:53:39 +08:00
回复了 kideny 创建的主题 Java Java 到底有哪些不好或者说比如其他语言的地方呢?
@lydhr jvm 慢? hotspot 可以说是优化做的最好的虚拟机了,基本可以吊打一票动态语言。当然安卓用的是 dalvik 不是 hotspot ,不过不管怎样都不能把锅甩给 java
2016-07-19 15:56:25 +08:00
回复了 katyang 创建的主题 Python 退出 Anaconda 环境后,还是用 activate 重新进去吗?
@katyang
默认的就是 root 环境吧,不需要 activate
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2706 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 00:07 · PVG 08:07 · LAX 16:07 · JFK 19:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.