[bolt-discuss] Error ABT_mutex_lock: 20
Carlos Henrique Rebollo
rebollo at cenapad.unicamp.br
Thu Mar 16 09:17:33 CDT 2017
Hello,
I Have compiled llvm 3.9.1 bolt 1.0a1 and argobots 1.0a1
And tried use in simple task code.
And I have get this on execution.
[mutex.c:172] ABT_mutex_lock: 20
Segmentation fault (core dumped)
Worked with gcc and icc.
Best wishes,
Carlos Rebollo.
gdb information
Core was generated by `./a.out'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f64ca2426c2 in ABT_mutex_create ()
from /usr/local/llvm-bolt-argobots/lib/../lib/libabt.so.0
(gdb) where
#0 0x00007f64ca2426c2 in ABT_mutex_create ()
from /usr/local/llvm-bolt-argobots/lib/../lib/libabt.so.0
#1 0x00007f64caa75300 in __kmp_do_serial_initialize ()
at
/usr/local/src/llvm/projects/openmp/runtime/src/abt/kmp_abt_runtime.c:139
#2 0x00007f64caa75a5a in __kmp_do_middle_initialize ()
at
/usr/local/src/llvm/projects/openmp/runtime/src/abt/kmp_abt_runtime.c:363
#3 0x00007f64caa75ddb in __kmp_middle_initialize ()
at
/usr/local/src/llvm/projects/openmp/runtime/src/abt/kmp_abt_runtime.c:470
#4 0x00007f64caa99362 in __kmp_api_omp_get_num_procs ()
at
/usr/local/src/llvm/projects/openmp/runtime/src/abt/kmp_abt_ftn_entry.h:444
#5 0x0000000000400b09 in main ()
code
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
#include <unistd.h>
int main(){
int i=0,j=0,res;
int mprocs=0;
int *pprocs;
pprocs=malloc(sizeof(int)*omp_get_num_procs());
for(i=0;i<omp_get_num_procs();i++)
pprocs[i]=0;
#pragma omp parallel private(res)
{
res=0;
#pragma omp for private(i,j) nowait
for(i=0;i<omp_get_num_procs()*10;i++){
for(j=0;j<omp_get_thread_num()*100;j++)
{
res=res+1;
//printf("for %i,%i res=%i thread
%i\n",i,j,res,omp_get_thread_num());
}
}
printf("res=%i thread %i\n",res,omp_get_thread_num());
#pragma omp single
{
printf("Processo %i dentro single total %i\n",
omp_get_thread_num(),omp_get_num_threads());
for(i=0;i<omp_get_num_procs()*10;i++){
#pragma omp task
{
pprocs[omp_get_thread_num()]++;
if( omp_get_num_threads() > mprocs )
mprocs=omp_get_num_threads();
printf("Processo %i dentro task total
%i\n",
omp_get_thread_num(),omp_get_num_threads());
}
}
}
}
for(i=0;i<omp_get_num_procs();i++)
printf("%i process %i itens\n",i,pprocs[i]);
printf("quantidade de processos %i\n",mprocs);
free(pprocs); pprocs=NULL;
return 0;
}
More information about the discuss
mailing list