关于从核同步操作
-
在使用athread加速线程库时,由于不同的从核有可能会读写同一数组的同一元素,会造成计算错误,此时能不能有一个类似于OpenACC的原子操作,使这个数组在某时刻只能被一个从核读写。这种情况是否要使用核组内同步函数?但是我在从核函数直接调用sync_array之后编译就无法通过了,显示 undefined reference to ‘slave_sync_array_'。核组内同步函数应该如何使用呢,谢谢解答。
-
@Chanice
核组内同步:#include <slave.h>
,athread_syn(ARRAY_SCOPE, 0xffff)
-
@swmore Fortran里是直接调用就行了吗,还有括号里的参数是怎么用的呀,段老师能再说详细一点吗,十分感谢。
-
@Chanice Fortran里面不能直接调用
需要使用fortran调用c再调用
C文件里:void athread_sync_all_c_(){ athread_syn(ARRAY_SCOPE, 0xffff); }
Fortran文件里:
call athread_sync_all_c()