和joblib共同使用?

最近想到了一个问题,taichi可以和joblib共同使用吗?就是利用joblib的多进程管理taichi进程

1 个赞

经过简单验证,是可以的,我想这样做的目的是打包成一个pyqt5界面,然后用joblib进行taichi管理,目前来看应该可行:
from joblib import Parallel, delayed
import taichi as ti

def taichi_task(param):
# 每个进程独立初始化 Taichi(例如分配到不同 GPU)
ti.init(arch=ti.cuda) # 假设有 2 块 GPU
# print(f"Process {param} running on GPU {param % 2}")

@ti.kernel
def simulate()->ti.i32:
    # 示例计算:平方操作
    result = 1
    return result

return simulate()

if name == ‘main’:
params = [1, 2, 3, 4]
# 启动 4 个进程,根据 GPU 数量调整 n_jobs
results = Parallel(n_jobs=4)(delayed(taichi_task)(p) for p in params)
print(“Results:”, results) # 输出: [1, 4, 9, 16]