我有兩個列表,我需要匹配一個元素,並將這些元素輸出到一個新的矩陣(輸出)中。在Fortran中最快的方法是什麼?蠻力至今:在fortran中儘可能快地找到隨機列表之間的匹配(+ openmp)
do i = 1,Nlistone
do j = 1,Nlisttwo
if A(i).eq.B(j) then
output(i) = B(j)
end if
end do
end do
OpenMP的版本:
!$OMP PARALLEL PRIVATE(i,j)
do i = 1,NA
do j = 1,NB
if A(i).eq.B(j) then
filtered(i) = A(j)
end if
end do
end do
!$OMP END PARALLEL DO
肯定有更好的方法來做到這一點,排序是不是一種選擇,在這裏遺憾(+向量元素是不以任何特定的順序) 。 python中是否有類似於mask
的布爾參數?
是否有任何理由爲什麼一旦找到匹配就無法退出內循環? –
我需要一個CONTINUE語句在篩選下(i)= ...? – Griff
出於好奇 - 高性能標誌,Hristo Iliev和伊恩布什似乎是人們一貫的優秀幫助(我確信還有其他人)。你是通過stackoverflow還是隻是好的撒瑪利亞人? – Griff