<br><br>On Monday, May 9, 2011 4:50:22 PM UTC-4, Urban wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hi Axel,<p></p><p>On Mon, 2011-05-09 at 09:34 -0700, Axel wrote:<br>> [...]<br>> hmmm... interesting.<br>> was this the very latest cvs code?</p><p>Yes, this was today's CVS.</p></blockquote><div><br></div><div>ok. i updated and tried again, but no luck so far.</div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>> it almost looked to me as if there were some <br>> mpi calls within a multi-threaded region that <br>> were messing things up...</p><p>I believe we don't (or shouldn't) use such calls.  Also, you can<br>explicitly make CP2K call mpi_init_thread() instead of mpi_init()<br>(change .TRUE. to .FALSE. on line 479 of src/message_passing.F)--the<br>current default is a workaround  for de facto MPI threading behavior but<br>is technically wrong.  Also, I just committed a patch to declare the use<br>of MPI funneled mode instead of general mode.</p></blockquote><div>i tried that, but now cp2k quits right away with a confusing error:</div><div><br></div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 0</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 1</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 2</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 3</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 4</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 5</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 6</div><div> CP2K|  MPI error 0 in Inadequate level of thread support is provided. : MPI_SUCCESS: no errors</div><div> CP2K| Abnormal program termination, stopped by process number 7</div><div><br></div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>> also, can you comment on what these two defines are for?<br>>  -D__USE_CP2K_TRACE -D__HAS_smm_dnn </p><p>__USE_CP2K_TRACE uses CP2K's stack trace infrastructure on failed<br>assertions in the DBCSR sparse matrix (sub)library.  To use it you must<br>also add the timings_mp.o module to the LIBS variable (used to get<br>around this and some other circular dependencies).  While using it or<br>not should not affect behavior, there are OpenMP statements in stack<br>tracing and timing.</p></blockquote><div>i have so far tried without.</div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>__HAS_smm_dnn is for using the Small Matrix Multiply library (see<br>tools/build_libsmm).  It is not threaded so skipping it should have no<br>effect on the program's behavior.</p></blockquote><div>ok. thanks for the info. this is a fairly new feature, right?</div><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>> this one is a bit of a surprise, since already gfortran 4.3.x claims<br>> to be OpenMP 3 compliant.<br>> -D__HAS_NO_OMP_3</p><p>I used gfortran 4.3 until recently (where psmp also worked last time I<br>checked) and didn't update the defines...</p><p>> as far as threaded libraries go. what about MKL?<br>> last thing a remember is that it would not go multi-threaded<br>> if it is called from within an OpenMP multi-threaded region,<br>> but that may be wishful thinking...</p><p>I haven't tried MKL recently so I can't say.  However, to rule out any<br>library issues, I would try standard netlib BLAS and Lapack...</p></blockquote><div>well, in my experience those can get as easily miscompiled</div><div>as using precompiled packages like MKL.</div><div><br></div><div>for good measure, i am linking with the serial version</div><div>now, but that didn't change the behavior.</div><div><br></div><div>it _does_ work fine in the sopt/popt binaries.</div><div><br></div><div>just make sure we're on the same page. the input(s) that</div><div>are giving me the problems are the water benchmark inputs.</div><div>in tests/QS/benchmark/</div><div><br></div><div>the cp2k.?smp binaries work fine for OMP_NUM_THREADS=1,</div><div>but as soon as i enable more than one thread with cp2k.psmp</div><div>and multiple MPI tasks, i get NaNs or random energies.</div><div>cp2k.ssmp appears to be working for both intel 11.1 and gfortran 4.4.4</div><div><br></div><div>thanks,</div><div>    axel.</div><div><br></div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><p>Cheers,<br>Urban.</p><p>> <br>> in any case, i'll give it a try.<br>> <br>> <br>> thanks,<br>>      axel.<br>> <br>> -- <br>> You received this message because you are subscribed to the Google<br>> Groups "cp2k" group.<br>> To post to this group, send email to <a>cp...@googlegroups.com</a>.<br>> To unsubscribe from this group, send email to cp2k<br>> +<a>unsu...@googlegroups.com</a>.<br>> For more options, visit this group at<br>> <a href="http://groups.google.com/group/cp2k?hl=en" target="_blank">http://groups.google.com/<wbr>group/cp2k?hl=en</a>.</p><p><br></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p></blockquote>