在“编程面试的元素”一书中,我遇到了返回最大和的子数组的问题。我尝试了他们的解决方案,我认为我们不需要跟踪最小和来获得最大和的数组:
我写了另一个版本的maximumSumMine,其中我删除了minSum,它工作得很好,输出在注释中
跟踪minSum的目的是什么,我们真的需要它吗?
#include <stdio.h>
#include <limits.h>
typedef struct range {
int start;
int end;
int maxSum;
} range;
void print(int *a, int start
下面是我在udacity中从“并行计算入门”中获得的一段简短代码。这段代码中的索引把我搞糊涂了。
__global__ void use_shared_memory_GPU(float *array)
{
int i, index = threadIdx.x;
float average, sum=0.0f;
__shared__ float sh_arr[128];
sh_arr[index] = array[index];
__syncthreads();
// Now it begins to confuse me
for(
在我用fortran编写的顺序代码中,我有一个子例程来混洗一些以这种方式工作的向量:
DO i=1,nsim
IF(iflag(i) == 0)THEN
j=j+1
pos(j)=pos(i)
v(j)=v(i)
iflag(j)=iflag(i)
END IF
END DO
nsim=j
我是一个新手OpenMP用户,所以我不知道如何以正确的方式编写这个循环。最初,我是这样想的:
!$omp parallel do reduction(+: j)
DO i=1,nsim