[Users] Enabling CUDA/OpenCL thorns by default in Simfactory?
Steven R. Brandt
sbrandt at cct.lsu.edu
Thu May 29 07:22:48 CDT 2014
On 05/28/2014 09:29 AM, Erik Schnetter wrote:
> Steve
>
> Simfactory can do both. Disabling certain thorns is used for
> exceptions, e.g. if a machine is currently broken and can currently
> not build a particular thorn. If this thorn is "unimportant" (e.g.
> pciutils), then most likely no one will notice. Of course, disabling
> BSSN in this way would not be a good idea.
Does Simfactory enable commented out thorns, or does it add them?
Cheers,
Steve
>
> -erik
>
> On Wed, May 28, 2014 at 6:24 AM, Steven R. Brandt <sbrandt at cct.lsu.edu
> <mailto:sbrandt at cct.lsu.edu>> wrote:
>
> 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 <mailto:Users at einsteintoolkit.org>
>> http://lists.einsteintoolkit.org/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at einsteintoolkit.org <mailto:Users at einsteintoolkit.org>
> http://lists.einsteintoolkit.org/mailman/listinfo/users
>
>
>
>
> --
> Erik Schnetter <schnetter at cct.lsu.edu <mailto:schnetter at cct.lsu.edu>>
> http://www.perimeterinstitute.ca/personal/eschnetter/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20140529/6d1d937d/attachment.html
More information about the Users
mailing list