great! still, I would do the first iteration with coarser grids
also if you are going to use valgrind or callgrind (google for how to profile with kcachegrind) then running times are 10x or more the original ones
to address (1), try a parametric run increasing the number of nodes and plotting the consumed memory vs the number of nodes or elements, we might see something there
also, try using pure hexs like in a bare cube. Probably mixing hexs and quads is leaking memory.
to address (2) we need a more general way of testing wether two elements share a face or not, I will add this task to the backlog I might have some time later in the year to address this subject
greetings from my mobile phone while my kids take a nap in our family vacations at the beach
--
You received this message because you are subscribed to the Google Groups "wasora" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wasora+un...@seamplex.com.
To post to this group, send email to was...@seamplex.com.
Visit this group at https://groups.google.com/a/seamplex.com/group/wasora/.
To view this discussion on the web visit https://groups.google.com/a/seamplex.com/d/msgid/wasora/CAE%3DfeK3AWZukW9mFh%3DVX%3DMmDN_48m-dGCtjzgwCRgNVdNCLL2g%40mail.gmail.com.
For more options, visit https://groups.google.com/a/seamplex.com/d/optout.
great job! pull request accepted and merged (did not have time to look at it thoroughly, next week back at home I will)
now I want to know what the difference between tets and hexes in s2 fem is
--
You received this message because you are subscribed to the Google Groups "wasora" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wasora+un...@seamplex.com.
To post to this group, send email to was...@seamplex.com.
Visit this group at https://groups.google.com/a/seamplex.com/group/wasora/.
To view this discussion on the web visit https://groups.google.com/a/seamplex.com/d/msgid/wasora/CAE%3DfeK3v1Kzdfe5wi-j4FOb_jsYPMEt_VgYFxcG5L_EqVEZjtw%40mail.gmail.com.
For more options, visit https://groups.google.com/a/seamplex.com/d/optout.
I just took a quick look and even though it is memory that is alloced and never free I do not think that it qualifies as a memory leak
a leak is memory that is alloced in a loop and never freed so it takes up memory in a way that scales with the number of unknowns or something like that
did this commit fix the problem of running out of memory?
we had an interesting discussion regarding a similar issue with ramiro perhaps he remember what it was about
the thing is that if the os kills the process before reaching the free() you added, the problem is not fixed
calling free() just before the program ends is polite but useless, as the os frees the unused memory after a process ends after all
it might be needed in the case of milonga in parametric or pseudo-transient problems though, so it was not work in vain :-)
the disucssion with ramiro was not public I think
To view this discussion on the web visit https://groups.google.com/a/seamplex.com/d/msgid/wasora/CAE%3DfeK010e7htsdaN8OrtaZDO_yC_AV4goQbGfJ1WD%2Bd3ds19g%40mail.gmail.com.
For more options, visit https://groups.google.com/a/seamplex.com/d/optout.
The first tests I made show no memory errors in milonga functions(there are some "leaks" dueto PETSc, minor ammounts of bytes. If you want I can share the file) .However, the errors were not solvedfor the examples I run (specifically: hex mesh with s2 method).
I'm running now rather simple profiling tests, non-parametric, justto have a clue on what to look for whenthinking about parallelization.
Oh, you're absolutely right! The domain decomposition was only myfirst idea andit is one of the most difficult to implement. There are other options.I didn't mention, butI was (under my time allowance) studying the use of OpenMP toparallelize loops on thethread level. I guess this can be promising, but I can say nothingbefore having at leastan ideia of the costly functions which will be candidates to havetheir loops parallelized.
jeremy
--
You received this message because you are subscribed to the Google Groups "wasora" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wasora+un...@seamplex.com.
To post to this group, send email to was...@seamplex.com.
Visit this group at https://groups.google.com/a/seamplex.com/group/wasora/.
To view this discussion on the web visit https://groups.google.com/a/seamplex.com/d/msgid/wasora/0be0107844342874b4033f6635c9cc0b73fa3f1e.camel%40seamplex.com.
I didn't finish an organized set of tests/profiling, but using thelast version of milonga,However, I got al least three errors from PETSc:- cylinder-hex-elements-s2: error: PETSc error 55-0 'Memory requested14962484804' in /home/cfx/libs/petsc-3.8.4/src/mat/impls/aij/seq/aij.cMatSeqAIJSetPreallocation_SeqAIJ:3630- cylinder-tet-volumes-s2: error: PETSc error 55-0 'Memory requested714002692' in /home/cfx/libs/petsc-3.8.4/src/vec/vec/impls/seq/bvec3.cVecCreate_Seq:35- cylinder-hex-volumes-s2: error: PETSc error 55-0 'Memory requested708028484' in /home/cfx/libs/petsc-3.8.4/src/vec/vec/impls/seq/bvec3.cVecCreate_Seq:35
These errors look like PETSc wanted to allocate virtual memory and there was not enough.
I don't know if what you said about SLEPc also applies for PETSc, Ihave no experience with neither.
The HEX mesh has about 650,000 elements. The TET mesh has 680,000 elements.By the way, I'm using "big" meshes to be able to really see anybottelneck functions. Otherwise, I might not seecostly functions.
<blockquote type="cite">
I would not mix OpenMP with MPI.
</blockquote>
It is a good point. Theoretically, if you have a thread-safeimplementation of MPIthis wouldn't be an issue. But I am also a bit conservative on this matter.
The good thinks about openMP is that is based on pragmas (youprobably know that, but justfor the sake of clarity) and if we don't want to used it, the compiledcan simply ignore it.
Moreover, since it is quite simple to use, I was thinking abouttrying it. Specially because it is possibleto focus in some set of functions. A target could be the functionswhich build the matrices from the mesh, whichare, as long as I could check, exacly those spending more time running.