小编Sid*_*427的帖子

openacc vs openmp&mpi的区别?

我想知道openacc和openmp之间的主要区别是什么.MPI,cuda和opencl怎么样?我理解openmp和mpi之间的区别,特别是关于共享和分布式内存的部分它们是否允许混合gpu-cpu处理设置?

cuda mpi openmp opencl openacc

20
推荐指数
1
解决办法
1万
查看次数

if else代码块...还是一个如果有多个OR(||)条件?在C.

我在C中编写了一个小文本匹配程序,它基本上检查某些字符串中是否存在少量字符(以char数组的形式).它现在正在工作,我有一个像这样的代码块:

if (c == 'A') return 1;
else if (c == 'B') return 1;
else if (c == 'C') return 1;
....
....
else if (c == 'Z') return 1;
else return 0;
Run Code Online (Sandbox Code Playgroud)

上面的块是否更快?或者这会更快?

if (c == 'A' || c == 'B' || c == 'C' ||....|| c == 'Z') return 1;
else return 0;
Run Code Online (Sandbox Code Playgroud)

快速,我的意思是字面上快,即如果我从程序的开始直到结束运行一个简单的计时器,这可能会缩短执行时间?

c string performance if-statement

2
推荐指数
2
解决办法
9788
查看次数

C中的字符串指针数组

我知道C中的字符串基本上是一个字符数组.

我正在尝试一个指针数组,指针链接到字符串

我基本上想要打印出来,而不依赖'\n'来排序它

12345
abcde
67890
fghij
Run Code Online (Sandbox Code Playgroud)

这是我的代码 - >

char *array1 = "12345";
char *array2 = "abcde";
char *array3 = "67890";
char *array4 = "fghij";

char *array_2d[3];

array_2d[0] = &array1; 
array_2d[1] = &array2; 
array_2d[2] = &array3;
array_2d[3] = &array4;

int i,j;

for(i = 0; i<3 ; i++ ) {
    for(j = 0; j<3 ; j++) {
        printf("%c", array_2d[i][j]);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可能会犯错误,所以任何线索都会受到赞赏

c arrays string

2
推荐指数
1
解决办法
398
查看次数

openmp - 用于文本文件读取和使用管道的while循环

我发现openmp不支持while循环(或者至少不太喜欢它们).而且也不喜欢'!='运算符.

我有这段代码.

int count = 1;
#pragma omp parallel for
    while ( fgets(buff, BUFF_SIZE, f) != NULL )
    {
        len = strlen(buff);
        int sequence_counter = segment_read(buff,len,count);
        if (sequence_counter == 1)
        {
            count_of_reads++;
            printf("\n Total No. of reads: %d \n",count_of_reads);
        }
    count++;
    }
Run Code Online (Sandbox Code Playgroud)

关于如何管理这个的任何线索?我在某处读到(包括stackoverflow的另一篇文章)我可以使用管道.那是什么 ?以及如何实施它?

c parallel-processing hpc openmp

0
推荐指数
1
解决办法
8703
查看次数