我需要创建一个像这样的字典:
variables = {}
variables['throttle'] = {
(e, i, h, t): xp.var(lb=0, vartype=xp.continuous)
for e in engine_list
for i in max_num_engine
for h in temp_levels
for t in all_timesteps
}
variables['flow'] = ...
其中len(timesteps)为16000,其他的长度介于3-5之间。我知道我可以用numpy作为矩阵来做到这一点,这会快得多,但是我需要字典结构以便以后(处理解决方案)。 xp
是xpress软件包,是一个商业解决程序(具有强大的python支持以及功能和文档)
对dict的理解大约需要0.5-3秒,我需要执行60-100个(不是那么大),我可以以某种方式产生多个进程来并行创建一堆这些dict,然后合并它们吗?最好的方法是什么?每个键都略有不同,因此我不会遍历它们的创建。
答案 0 :(得分:0)
我相信,您唯一可以优化的就是调用xp.var
。理解本身(对于如此大量的数据)在中等性能的内核上需要200毫秒左右的时间(但总能很好地描述这一点)。
我在这里只能看到加快xp.var
的速度。我无法在本地进行测试,但是请检查是否可以创建xp.var(lb=0, vartype=xp.continuous)
并以理解的方式克隆它,而不是外部调用。