[design discussion] IPC or use the solver instance directly?

9 views
Skip to first unread message

Taihsiang Ho

unread,
Nov 19, 2015, 2:47:23 AM11/19/15
to sol...@googlegroups.com

Hi,
recently I am going to develop a more general probe anchor (compared to ProbeHook)
so we could not only dump/access solver data after the whole march with ProbeHook,
but also right after each iteration step with this prototype implementation.

Please refer to this patch of the prototype:
https://bitbucket.org/solvcon/solvcon/issues/attachments/128/solvcon/solvcon/1447917621.24/128/151119-probe-each-step-prototype.patch

This patch is mainly based on the method collect and postloop of ProbeHook.


Question:

In the collect method of ProbeAnchor (in the patch), solver instance seems to be enough to access expected data.
IPC way to pass the solver data is now only for parallel computing.
Is there any reason that we should implement the probe anchor in IPC way?

I am glad to implement 1st version to use the solver instance directly and then porting to the IPC way.
Maybe this 1st version could be part of unit tests.

Just asking for more inputs ;)
Thanks for any comment!!

Cheers,
Taihsiang
 

Yung-Yu Chen

unread,
Nov 19, 2015, 7:45:12 AM11/19/15
to sol...@googlegroups.com
On Nov 19, 2015, at 3:47 PM, Taihsiang Ho <tai2...@gmail.com> wrote:


Hi,
recently I am going to develop a more general probe anchor (compared to ProbeHook)
so we could not only dump/access solver data after the whole march with ProbeHook,
but also right after each iteration step with this prototype implementation.

Please refer to this patch of the prototype:
https://bitbucket.org/solvcon/solvcon/issues/attachments/128/solvcon/solvcon/1447917621.24/128/151119-probe-each-step-prototype.patch

This patch is mainly based on the method collect and postloop of ProbeHook.


Question:

In the collect method of ProbeAnchor (in the patch), solver instance seems to be enough to access expected data.
IPC way to pass the solver data is now only for parallel computing.
Is there any reason that we should implement the probe anchor in IPC way?


Parallel computing alone should be a good reason.  An explicit conservation-law solver isn’t useful if it isn't parallelized.

Assume a single CPU core can process 100k cells (elements) per second.  A reasonable-sized problem should use 10M cells and take 10k steps.  Then it requires 115.74 core-day.  If we don’t go to parallel computing, the job won’t be completed in realistic time.  100k cells per second per core was the number I got in 2011.

I am glad to implement 1st version to use the solver instance directly and then porting to the IPC way.
Maybe this 1st version could be part of unit tests.


This is a reasonable plan.  First code up sequentially and then make it (distributed) parallel.

Just asking for more inputs ;)
Thanks for any comment!!


I saw you added a marching method “probecell()” in solvcon.parcel.gas.solver.GasSolver.  We should discuss it.  GasSolver (or any child class of MeshSolver) was supposed to only implement the numerical algorithm.  Anything else went to Anchors.  Perhaps, for convenience, some non-numerical-method logic may be tolerated in GasSolver, but we need to think more about it.

And it is not a pleasant experience to review a patch file.  It should have been made as a pull request.  Having said that, I understand hg pull request isn’t particularly convenient with BitBucket.  In general BitBucket just doesn’t provide the most convenient features.  My latest frustration is the messy issue page, as you can seen in the attached image.

We need to seriously discuss moving to GitHub.  Productivity is important for our development.  We need good infrastructure including source control and code review.  Handicapped support won’t get us much farther.  


yyc


Cheers,
Taihsiang
 

--
You received this message because you are subscribed to the Google Groups "solvcon" group.
To unsubscribe from this group and stop receiving emails from it, send an email to solvcon+u...@googlegroups.com.
To post to this group, send email to sol...@googlegroups.com.
Visit this group at http://groups.google.com/group/solvcon.
For more options, visit https://groups.google.com/d/optout.

--
Yung-Yu Chen
http://yyc.solvcon.net/
+886 (99) 129 4763

Taihsiang Ho

unread,
Nov 20, 2015, 3:49:45 AM11/20/15
to solvcon

Parallel computing alone should be a good reason.  An explicit conservation-law solver isn’t useful if it isn't parallelized.

Assume a single CPU core can process 100k cells (elements) per second.  A reasonable-sized problem should use 10M cells and take 10k steps.  Then it requires 115.74 core-day.  If we don’t go to parallel computing, the job won’t be completed in realistic time.  100k cells per second per core was the number I got in 2011.



Thanks for this information and it is very convincing.
Let's do it!

-tai
Reply all
Reply to author
Forward
0 new messages