Hi Wolfgang, 

On Tuesday, January 31, 2017 at 10:57:35 PM UTC, Wolfgang Bangerth wrote:
>
>
> Yi-Chung, 
>
> > Thank you for your prompt reply. I was wondeirng if I can integrate 
> > other partition tools, such as metis or parmetis to handle the fully 
> > distributed triangulation. I can develop that part by myself (or with 
> > some help from the community). Do you have any suggestions? 
>
> I believe that it would not be impossible to develop this, but it will 
> probably not be a small exercise. You would have to develop a fair share 
> of code, and gain an understanding of parts of the library you don't 
> usually get to see if you use deal.II. 
>
> If you're willing to do this, we can guide you along the process, but 
> it's going to be a bit of work for sure. 
>
> I'm willing to work on this part. Please let me know how should I start 
it. I believe this code will help the community. 
 

> > My following 
> > project also relies on this since I will try to manage number of cells 
> > in each processor. With p4est, it is hard to manage number of cells 
> > based on a in-house algorithm. 
>
> That is actually not quite true. p4est (and the deal.II classes that use 
> it) allow you to describe a "weight" for each cell, and p4est will 
> partition in a way that the sum of weights is roughly equal among all 
> processors. 
>

I knew that p4est can do partition by weight. However, my current needs to 
control and distributed the cells in need. It would be better to control 
the partition by myself rather than p4est.
 

> > My application is about IC designs that 
> > may have million to billion cells. A fully distributed triangulation 
> > helps to reduce memory usage. The current shared_memory system can 
> > handle 20M (single core) in system of 32GB main memory. 
>
> That's already quite impressive :-) What kind of meshes do you have that 
> require so many cells? Are they geometrically incredibly complicated to 
> require that many cells already at the coarse level? 
>
Actually, this is the interesting part. We try to simulate thermal profile 
of integrated circuit. For a CPU, it has billion transistors inside and 
each of then has its own power trace as RHS. That is why we have to give it 
a large coarse mesh at beginning. I did some model reductions for 
transistors, but I still want my tool can simulate 100M cells to ensure 
accuracy.
 

>
> > Any design of 1M cells on the distributed triangulation have problem of 
> > computation time because of the reorder step. This is why I bypassed it 
> > and provided a sorted mesh to grid_in (read_msh). For a problem of 5M 
> > cells, I can save 200sec at the step of create_triangulation. 
>
> Yes, I'm willing to believe this. The algorithm wasn't intended for 
> meshes of this size, though we did test it with ~300k cells in 2d and we 
> know that it scales like O(N). So 200 seconds seems like a long time. Is 
> this in debug mode? 
>
Unfortunately not in debug mode.I guess the reorder is more like O(N^2 or 
N^4) if I may recall.
It searches the cells will minimum numbers of neighbors and then search 
again recursively for its neighbors. With increasing number of dofs, time 
increases exponentially.
For a 2-D problem it might be fast. For a 3-D, problem with >1M dofs takes 
a while to reorder.
In my setup program, a steady state 3-D thermal simulation (distributed 
trial) for a problem of 5M dofs in two cores requires 200 sec reorder, 80 
sec setup_system, 80 sec solver time (petsc-MPI). 100sec output, and 80 sec 
create_tria, and 45 sec assembly. Each core requires 9GB memory. This is 
why I want to reduce memory usage.

my solution is to create mesh by myself since I generate it from a real IC. 
here is an example, if anyone want to generate the mesh. For a 3X3 2-D 
mesh, normally I will create mesh start from x then y. However, p4est 
requires a mesh with minimum (or balanced communication), it would be 
better to group neighbors together. So cell_id becomes the following:
7 8 9         7 8 9
4 5 6  =>> 3 4 6
1 2 3         1 2 5
In this way, it is easy to map it to distributed them by linearly 
distributing. 


Best
YC Chen

Best 
>   Wolfgang 
>
>
> -- 
> ------------------------------------------------------------------------ 
> Wolfgang Bangerth          email:                 bang...@colostate.edu 
> <javascript:> 
>                             www: http://www.math.colostate.edu/~bangerth/ 
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to