Hi everybody, I'm trying to develop an R package with Fortran and OpenMP. I wrote a simple hello world but I'm not able to set the number of threads. I found this old email chain <http://r.789695.n4.nabble.com/Set-the-number-of-threads-using-openmp-with-C-td2284685.html> and I tried to set my compile instructions accordingly but i had no luck.
*This is my makevars:* PKG_FCFLAGS="-fno-stack-protector" F90FLAGS = "-fopenmp" LDFLAGS = "-fopenmp" *This is my Fortran module:* module hello_openmp use omp_lib implicit none contains subroutine hello(ncores) bind(C, name="hello_") use, intrinsic :: iso_c_binding, only : c_double, c_int integer(c_int), intent(in) :: ncores integer :: iam ! Specify number of threads to use: !$call omp_set_num_threads(ncores) !$omp parallel private(iam) iam=omp_get_thread_num() !$omp critical write(*,*) 'Hello from', iam !$omp end critical !$omp end parallel end subroutine hello end module hello_openmp *and this is my R function:* #'@export #'@useDynLib helloOpenMP, .registration = TRUE hello <- function(ncores=4) { .Fortran("hello", ncores = as.integer(ncores)) } *Alas, when I call hello things only run with one thread:* > hello(ncores = 2)$ncores Hello from 0 [1] 2 Could you point me in the right direction? What am I missing? Thanks, Ignacio [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel