我的功能昂贵
mainfunc:{[batch;savepath]
...compute large table depending on batch and save it to savepath...
}
被复制到从属进程的,每个进程处理对该函数的不同batch
输入。
假设我需要在input:til 1000
上执行该函数,然后进程1执行mainfunc[input[til 50];savepath]
,而进程2执行mainfunc[input[50+til 50]]
。由于它们是进程,因此无法将线程保存到文件。
我试图避免线程的原因是mainfunc
的输出是一个大表,如果将该表发送到主进程并从那里保存,则会有很多序列化开销。 / p>
现在,我遇到了要在每个进程中扩展大型表的限制。但是,展开操作(对于带符号的表)需要修改为枚举保留的sym
文件,一旦2个进程试图访问该sym
文件,我就会遇到异常。我使用类似
splaydirname set .Q.en[hsym `$savepath] largetable; / .Q.en locks the sym file enumeration is done
我该如何解决?
感谢您的帮助