Loop through a chunk of indices and count the number of hash conflicts. This is required for setting up the hash table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(sparse_lMat_t), | intent(inout) | :: | this | |||
| integer(kind=int64), | intent(in) | :: | indices(:) |
subroutine count_conflicts(this, indices) class(sparse_lMat_t), intent(inout) :: this integer(int64), intent(in) :: indices(:) integer(int64) :: i, total_size integer(int64), allocatable :: tmp(:) ! Gather all read indices on node-root call gather_block(indices, tmp) total_size = size(tmp) if (iProcIndex_intra == 0) then do i = 1, total_size ! count_index is not threadsafe => only do it on node-root if(tmp(i) > 0) call this%htable%count_index(tmp(i)) end do end if deallocate(tmp) end subroutine count_conflicts