I think this is also a workable idea. "Ham, David A" <david.ham@imperial.ac.uk> writes:
Hi all,
I have another variant on this to suggest. How about we just put the check in the firedrake import (on MPI rank 0). We check for having what seems to be an excessive number of cached files (say, over 10k) and spew a warning:
"Your Firedrake disk caches contain n files. You should consider clearing them using:
firedrake-clean
If this issue recurs frequently, it may indicate a problem with the way you are specifying your differential equations in UFL. Please see <url> for more details."
What do people think of that?
David
On 17/03/2019, 12:21, "firedrake-bounces@imperial.ac.uk on behalf of Miklós Homolya" <firedrake-bounces@imperial.ac.uk on behalf of miklos.homolya@tum.de> wrote:
An improved version of the logging idea would be this:
Stay silent for the first, say, few hundred to a thousand invocations of compiling generated code, but then start emitting visible warnings at each invocation. The message of the warning would warn for the potential issue of generating code in each time stepping iteration, and would reference the corresponding FAQ entry of the documentation, which would describe how to verify if that is the case, how to fix the problem, or to configure the number of swallowed invocations (for very complex models), or even to disable these warnings completely (not recommended).
Miklós Homolya <miklos.homolya@tum.de> writes: > Arguably one could let some logging through when just-in-time > compilation happens, although that typically evokes the wrong reaction > from users: "firedrake keeps printing all this crap! how to disable it?" > > I find it a pretty aggressive move to convert all floats to Constants, > since it easily leads to a perfusion of kernel arguments. Though, it > may still be the safest default behaviour, but I think one should at > least be able to disable it.