Parallel-in-Time / PFASST

PFASST++ is a C++ implementation of the "parallel full approximation scheme in space and time" (PFASST) algorithm
http://www.parallelintime.org/PFASST/
Other
32 stars 14 forks source link

Complete Rewrite of PFASST++ #220

Closed torbjoernk closed 9 years ago

torbjoernk commented 9 years ago

This is a complete rewrite of PFASST++.

The main reasons for this effort are:

Both things bugged be a lot and I sat down to redesign the whole library from scratch. That was not possible without using a few more template expressions.

The current state of the rewritten library is almost where we were with v0.5.0.

A few ToDos will be tackled in the near future:

Thanks to @f-koehler for dealing with some nasty CMake stuff.

Review on Reviewable

memmett commented 9 years ago

It really looks like run-time dynamism has been sacrificed here. We had a thread about that a long time ago when discussing templates and traits. I'm not sure why you've restricted yourself to two levels either... what was wrong with the general V-cycle version?

Also, it's not clear to me how this addresses "unreliable behaviour on large runs". What was the problem and how does your code fix it?

I'd much rather see smaller incremental changes than a huge PR like this. What are things about PFASST++ that really bugged you? Let's discuss and tackle them individually.

Also keep in mind that one goal that was stated early on was the need for run-time dynamism. For example, we want to be able to add/remove levels as the code is running; we want to be able change transfer operators, etc etc. Also keep in mind that there are ACTUALLY codes out there that do these kinds of things already!

torbjoernk commented 9 years ago

I'll keep that in my own fork. Further details via mail.