hi,
i was using icc 11.1
ok. i've been able to identify the source of the problem
with the intel compilers and reverted the change until
i find a way to re-introduce it so that it get compiled
correctly. my github repo code should work again.
i also tried the portland group compiler but this one only threw an
enormous amount of errors.
please find attached a script that will convert
all OpenMP pragmas in a way that PGI compilers
should be able to compile them without barking
at you. please note, that this will increase the
overhead for every encountered OpenMP region.
now i compiled axel's source with gcc 4.1.2 . read_data works with
this.
thanks for the hint. it's sort of funny...
i don't think it is funny, but it is rather sad.
compilers should compile correct code correctly
and tell you when code is not correct. sadly,
there are different interpretations of standards
and features that are more or less thoroughly
tested. whenever choosing a feature one has
thus always weigh the benefits against the
drawbacks and sometimes those are not always
as obvious as in the case of the PGI compilers.
but still, when i use the omp package, i get errors. but i believe
these are due to the simulation setup
for example - the crack example works without suffix omp, however with
suffix omp this happens: http://pastebin.com/Nq7b7XfX
this should not happen and i cannot reproduce it.
in general. the crack example is a case where energies
can be somewhat different, because rounding errors
can affect the group definitions. however, this would
apply to a lammps binary consistently across MPI and
OpenMP parallelization, so you should get the same
result when running without or with -sf omp and OMP_NUM_THREADS
set to 1 2 4 and so on respectively. this is how i
test. the explicit specification of suffix and package
omp are no longer required when using my development code.
possibly, the gcc compiler you use has a buggy OpenMP
implementation. i have only been testing in detail
with gcc 4.4.x and gcc-4.5.x and (occasionally) intel 11.1
so far. i've did one cross check against PGI, Cray and
PathScale compilers where i found the PGI OpenMP issue
with the "default(none)" clause i mentioned above.
with my other simulations i get the shake determinant<0 error.
that is also an indication of incorrect forces, but
i cannot tell how you would get those. for me the
crack example works, even if - through using MPI -
the group definition is a bit different.
is there anything i should do differently when using the omp package
compared to 'normal'?
no. any case you find a difference, please let me know.
there are now almost 250 adapted/modified files. there
is always the possibility of a few glitches.
thanks,
axel.
hack_openmp_for_pgi.sh (180 Bytes)