我需要创建一个字典,如下所示:
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(时间步长)是16000,其他的长度在3-5之间。我知道我可以用numpy作为矩阵,这会快得多,但我需要字典结构以便稍后(以处理解决方案)。xp是xpress包,一个商业解决方案(具有糟糕的python支持、功能和文档)
字典理解大约需要0.5 -3秒,我需要做60-100个字典(不是所有的这么大),我可以以某种方式产生多个进程来并行创建一堆这些字典,然后合并它们吗?做这件事最好的方法是什么?每个键都略有不同,所以我不会遍历它们的创建。
发布于 2018-10-22 20:13:18
我相信,你唯一可以优化的就是调用xp.var。理解本身(对于如此大量的数据)在一般的核心上需要大约200ms(但对此进行分析总是很好的)。
在这里,我能看到的唯一方法就是加速xp.var。我无法在本地测试它,但请检查您是否可以创建xp.var(lb=0, vartype=xp.continuous)并在理解中克隆它,而不是外部调用。
https://stackoverflow.com/questions/52928789
复制相似问题