[Users] Enabling CUDA/OpenCL thorns by default in Simfactory?
Steven R. Brandt
sbrandt at cct.lsu.edu
Wed May 28 05:24:59 CDT 2014
I think that processing things inside comments is confusing (if that's
what's happening), unless there's some special tag in the comment, e.g.
@@. Wouldn't it make more sense for SimFactory to accept the list of
uncommented thorns, and disable if appropriate?
Cheers,
Steve
On 05/27/2014 12:01 PM, Ian Hinder wrote:
>
> On 27 May 2014, at 17:23, Erik Schnetter <schnetter at cct.lsu.edu
> <mailto:schnetter at cct.lsu.edu>> wrote:
>
>> On Tue, May 27, 2014 at 10:51 AM, Frank Loeffler <knarf at cct.lsu.edu
>> <mailto:knarf at cct.lsu.edu>> wrote:
>>
>> On Tue, May 27, 2014 at 09:46:29AM -0500, Frank Loeffler wrote:
>> > Wouldn't that mean that every checkout on such a machine fails,
>> because
>> > simfactory would unconditionally add these thorns to the thornlist,
>> > regardless of whether they are actually present or not?
>>
>> Replying to myself: Is this really what Simfactory does - or does it
>> only "enable" these thorns when they are present in the
>> thornlist, but
>> commented out? If the latter is the case I think it should be fine,
>> although it might still confuse people that don't even look at the
>> simfactory configuration of the machine, and use a thornlist with
>> such a
>> thorn commented out, but not present. Could we somehow let these
>> users
>> give a hint why Cactus fails with 'thorn not found', when the
>> original
>> thornlist clearly commented it out?
>>
>>
>> As per our previous discussion, the standard ET thorn list will (and
>> this is the current state)
>> 1. Check out all CUDA and OpenCL thorns, on ALL machines
>> 2. Disable all CUDA and OpenCL thorns when building Cactus, on ALL
>> machines
>> If you are using this standard thorn list directly, then this is the
>> only reasonable way to go; other choices don't make sense.
>>
>> Simfactory pre-processes thorn lists, in the same way it
>> pre-processes option lists and parameter files, expanding variables.
>> It is important to have such a pre-processing step, since it avoids
>> having to do this manually. This is how Simfactory "fixes" things for
>> various machines, it is an important part of how it works.
>>
>> Blue Waters supports both CUDA and OpenCL. We now have two options:
>> 1. Use the standard ET thorn list there, i.e. disabling CUDA and
>> OpenCL by default
>> 2. Automatically enable CUDA and OpenCL thorns
>>
>> As others mentioned, it does not make sense to enable CUDA and OpenCL
>> everywhere, since it would not be supported everywhere. Enabling the
>> thorns but adding a mechanism that turns these thorns into dummy
>> thorns that do nothing also doesn't make sense -- think of a BSSN
>> thorn written in CUDA; turning it into a dummy thorn that does
>> nothing on a non-CUDA machine would just mean that BSSN evolution
>> doesn't happen there. There are machines that support CUDA and there
>> are machines that don't, and if you want to use CUDA then you will
>> need to get an error message when you try to use a machine that
>> doesn't support CUDA.
>>
>> So -- how do we want to support CUDA on Blue Waters?
>>
>> 1. Ask people to manually change the thorn list, in effect asking
>> them to maintain one thorn list per machine
>> 2. Let Simfactory do this, since it already knows what works on what
>> machine and what doesn't
>>
>> I don't think there are any other choices.
>>
>> In case you are wondering: What I propose won't break checking out
>> thorns on any machine, and won't break the build on any machine, and
>> won't require people to do special things for special machines. I
>> regularly build on many machines, and I do so in an automated manner,
>> and I don't maintain per-machine thorn lists or parameter files.
>> Simfactory has an MDB that encodes all the machines' peculiarities,
>> and the information there is sufficient to use all of our machines
>> efficiently, and in an automated manner.
>>
>> There is the argument of "this would surprise people". If we are
>> worried about people being surprised that a CUDA thorn can't be
>> activated on a non-CUDA machine, then maybe we need to raise our
>> expectations a bit.
>
> I have been "surprised" in the past when I saw a thorn commented out
> in the thornlist, and Cactus trying to build it because SimFactory has
> enabled it on a particular machine. I had no idea what was going on,
> and couldn't believe that simfactory was doing this when I found that
> it was. I think if something is commented out, it should be ignored.
>
> Maybe we could add a feature to the Cactus thornlist language for
> "included if available"? e.g.
>
> ? Arrangement/Thorn
>
> SimFactory could expand this, and Cactus would ignore it by default.
> This is similar to the existing "!" comments which are used by
> GetComponents, and ignored by Cactus. At least this way, it doesn't
> look like it has been commented out.
>
> --
> Ian Hinder
> http://numrel.aei.mpg.de/people/hinder
>
>
>
> _______________________________________________
> Users mailing list
> Users at einsteintoolkit.org
> http://lists.einsteintoolkit.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20140528/d57882aa/attachment-0001.html
More information about the Users
mailing list