MetaGen

MetaGen

V2EX member #113047, joined on 2015-04-23 23:28:48 +08:00
MetaGen's recent replies
Jun 10, 2024
Replied to a topic by 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 的代码。
Jun 10, 2024
Replied to a topic by MetaGen Python 高效灵活的数学优化建模语言: PyOptInterface
@dayeye2006199 是的,仅测量了创建模型的速度,因为求解问题的速度仅取决于求解器,和建模语言无关。
Jun 9, 2024
Replied to a topic by MetaGen Python 高效灵活的数学优化建模语言: PyOptInterface
@chizuo

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

不过在建模性能方面,PyOptInterface 也是比 Gurobi 自带的 Python 接口要快的。至于求解问题的速度,这个取决于调用的求解器,像 Gurobi 等商业求解器速度都比较快。
后端的服务是不算 distribution 的,除非你把软件分发给了别人,又不是 AGPL
想要真正的等宽字体就用 Noto Sans Mono 或者 Inziu Iosevka 吧,雅黑和 consolas 混在一起感觉不伦不类
Feb 26, 2017
Replied to a topic by explist Python PY 的 C 扩展疑问
用 cffi 多简单,为啥要用 CPython 的接口
Dec 24, 2016
Replied to a topic by markme Java Java GPU 加速
不建议用 Java 搞这种 native 的东西, JNI 的开销其实相当大。
还是等到 Project Panama 出来再去考虑吧。
http://openjdk.java.net/projects/panama/
@lydhr jvm 慢? hotspot 可以说是优化做的最好的虚拟机了,基本可以吊打一票动态语言。当然安卓用的是 dalvik 不是 hotspot ,不过不管怎样都不能把锅甩给 java
@katyang
默认的就是 root 环境吧,不需要 activate
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
♥ Do have faith in what you're doing.