ошибка сегментации в openmp Linux - PullRequest
0 голосов
/ 31 мая 2018

Я только недавно изучал openMp, и когда я скомпилировал и запустил следующую программу для Linux, я встретил «ОТКРЫТИЕ СЕГМЕНТА». Кто-нибудь может помочь мне решить эту проблему?

 #include <stdio.h> 
 #include <stdlib.h> 
 #include <omp.h> 

 void Hello(void); /* Thread function */ 

 int main(int argc, char* argv[]) {     
  /* Get number of threads from command line */     
 int thread_count = strtol(argv[1], NULL, 10); 

 # pragma omp parallel num_threads(thread_count)    
 Hello(); 

  return 0; } /* main */ 

  void Hello(void) {     
  int my_rank = omp_get_thread_num();     
  int thread_count = omp_get_num_threads(); 

  printf("Hello World from thread %d of %d\n", my_rank, thread_count); 

  } /* Hello */ 

1 Ответ

0 голосов
/ 04 июня 2018

Вы должны запустить исполняемый файл с аргументом, соответствующим количеству потоков:

g++ -fopenmp test.cpp -o myExec
./myExec 4

В противном случае вам придется жестко закодировать переменную thread_count, например:

 int thread_count = 4

Тогдавам не понадобятся аргументы.

...