Hello,
I hope someone can help me with the following problem. I want to parallelize a fortran program but I am bound to a windows machine (which ist he major problem but not the one I am concerned here). I am using either g95 or gfortran as compiler but both produce separate problems. Within gfortran I cannot read files bigger than 2 GB as stream due to a bug that is not solved for the windows version (but for all other versions). Otherwise parallelizing would easy be possible by omp (e.g. omp_set_num_threads() and so on). Due to the bug I changed to g95 compiler where parallelizing should be possible by coarrays.
The suggested test program:
integer :: m[*]
m = THIS_IMAGE()
SYNC ALL
if (THIS_IMAGE() == 1) then
do i=1, NUM_IMAGES()
print *, i, m
enddo
endif
end
produces the error
undefined reference to '__g95_this_image'
undefined reference to '__g95_sync_all'
and so on…..
I therefore have several questions and each answer might help me getting further.
- Has someone parallelized his or her program in fortran on a windows machine and how was that possible?
- Is there a bug free windows gfortran version that is easy to install (I used which makes it possible to read files larger than 2GB without direct access
- How may I get rid of the “undefined reference” errors, s this due to a not up to date version of g95 or did I not include needed libs?
Thank you very much and kindest regards,
Marc
I hope someone can help me with the following problem. I want to parallelize a fortran program but I am bound to a windows machine (which ist he major problem but not the one I am concerned here). I am using either g95 or gfortran as compiler but both produce separate problems. Within gfortran I cannot read files bigger than 2 GB as stream due to a bug that is not solved for the windows version (but for all other versions). Otherwise parallelizing would easy be possible by omp (e.g. omp_set_num_threads() and so on). Due to the bug I changed to g95 compiler where parallelizing should be possible by coarrays.
The suggested test program:
integer :: m[*]
m = THIS_IMAGE()
SYNC ALL
if (THIS_IMAGE() == 1) then
do i=1, NUM_IMAGES()
print *, i, m
enddo
endif
end
produces the error
undefined reference to '__g95_this_image'
undefined reference to '__g95_sync_all'
and so on…..
I therefore have several questions and each answer might help me getting further.
- Has someone parallelized his or her program in fortran on a windows machine and how was that possible?
- Is there a bug free windows gfortran version that is easy to install (I used which makes it possible to read files larger than 2GB without direct access
- How may I get rid of the “undefined reference” errors, s this due to a not up to date version of g95 or did I not include needed libs?
Thank you very much and kindest regards,
Marc