我正在尝试使用onNextFrame(callback) {
window.requestAnimationFrame(callback);
}
//And wrap the function that accesses the Dom directly like this
onNextFrame(() => {
let target = document.querySelector(`...`);
...
});
模块对一系列等级为4,5和6的阵列进行光环交换。以前我使用了子阵列类型,但结果很多,ifort无法跟踪所有这些类型,并在使用mpi_f08
进行编译时开始破坏它们。
我正在使用
的代码-ipo
(稍后调用call MPI_Isend(Array(1:kthird, ksizex_l, 1:ksizey_l, 1:ksizet_l, 1:size5, 1:size6), size, MPI_Double_Complex, ip_xup, 0 + tag_offset, comm, reqs(1))
call MPI_Irecv(Array(1:kthird, 0, 1:ksizey_l, 1:ksizet_l, 1:size5, 1:size6), size, MPI_Double_Complex, ip_xdn, 0 + tag_offset, comm, reqs(2))
)
ifort 2017 with Intel MPI 2017为每条此类行提供以下警告:
MPI_WaitAll
尽管如此,光晕交换对于秩-4和-5阵列工作正常。但是,当涉及到rank-6数组时,数组数据会进入并来自完全错误的位置,而来自发送进程中的光晕的数据(不是传入test_mpif08.F90(51): warning #8100: The actual argument is an array section or assumed-shape array, corresponding dummy argument that has either the VOLATILE or ASYNCHRONOUS attribute shall be an assumed-shape array. [ARRAY]
的数组段中)出现在大部分接收过程(未传递到MPI_Isend
)。
使用ifort 2018和Intel MPI 2019预览会出现其他错误(不是警告):
MPI_Irecv
三个相互关联的问题:
test_halo_6_aio.F90(60): warning #8100: The actual argument is an array section or assumed-shape array, corresponding dummy argument that has either the VOLATILE or ASYNCHRONOUS attribute shall be an assumed-shape array. [ARRAY]
call MPI_Isend(Array(1:kthird, ksizex_l, 1:ksizey_l, 1:ksizet_l, 1:size5, 1:size6), size, MPI_Double_Complex, ip_xup, 0 + tag_offset, comm, reqs(1))
-------------------^
test_halo_6_aio.F90(60): error #7505: If an actual argument is an array section with vector subscript and corresponding dummy argument does not have VALUE attribute, it must not have ASYNCHRONOUS / VOLATILE attribute. [BUF]
call MPI_Isend(Array(1:kthird, ksizex_l, 1:ksizey_l, 1:ksizet_l, 1:size5, 1:size6), size, MPI_Double_Complex, ip_xup, 0 + tag_offset, comm, reqs(1))
^
和MPI_Isend
调用中,我的语法是否有问题?如何修复它以便不再触发警告?我已将失败的例子放入this gist。