Hi Stefan,

"Dr. Stefan Harfst" <[email protected]> writes:

> Dear Loris,
>
> one way to achieve what you want is to use the modxxxfooter parameters in the 
> eb-file (untested):
>
> modluafooter = 'setenv("MCR_CACHE_ROOT", pathJoin("/scratch", 
> pathJoin(os.getenv("USER"), "mcr_cache")))'
> modtclfooter = 'setenv("MCR_CACHE_ROOT", pathJoin("/scratch", 
> pathJoin(os.getenv("USER"), "mcr_cache")))'
>
> Not sure if this is advisable, in particular if you use $TMPDIR as this may 
> change from the time the module is loaded to the time Matlab is running. 
>
> Wouldn't it be better to set MCR_CACHE_ROOT within Matlab based on TMPDIR?

You are right that the dependency on TMPDIR is a bit fragile.  However,
the goal is to have user-specific temporary directories on a global file
system, for MATLAB and other programs, in a single place, so that we
can easily clear it them every now an then, using something like a
Robinhood delete policy.  This mechanism worked well enough on our last
cluster.

Cheers,

Loris

> Best wishes
> Stefan
>
> --
> Scientific Computing
>
> Carl von Ossietzky University Oldenburg
> School of Mathematics and Natural Sciences
> 26111 Oldenburg, Germany
>
> Office: W03 1-139
> Phone: +49-441-798 3147
> E-Mail: [email protected]
> www: http://www.uni-oldenburg.de/fk5/wr
>
> -----Ursprüngliche Nachricht-----
> Von: [email protected] 
> [mailto:[email protected]] Im Auftrag von Loris Bennett
> Gesendet: Dienstag, 12. März 2019 11:42
> An: easybuild <[email protected]>
> Betreff: Re: [easybuild] Accessing environment variables in easyconfig
>
> Hi Åke,
>
> I want to add the environment variables to a MATLAB easyconfig which are 
> needed to run compiled MATLAB programms
>
> I tried
>
>   modextravars = {'LM_LICENSE_FILE': '%s@%s' % (license_server_port, 
> license_server),
>                   'MATLABROOT': '.',
>                   'MCR_HOME': 'MATLABROOT',
>                   'MCR_CACHE_ROOT': '/scratch/$USER/mcr_cache',
>                   }
>
> But when I load the module as a normal user, the variable is not
> expanded:
>
>   $ echo $MCR_CACHE_ROOT
>   /scratch/$USER/mcr_cache
>
> Ultimately, I may well just define a general temporary directory such as
>
>   TMPDIR=/scratch/tmp/$USER
>
> somewhere in /etc/profile.d, but even then I'd need to have the module expand 
> $TMPDIR properly.
>
> Cheers,
>
> Loris
>
>
> I want to add an
> Åke Sandgren <[email protected]> writes:
>
>> That sounds very wrong.
>>
>> Installing user should not be exposed to the software that is being 
>> installed.
>>
>> What's your use-case?
>>
>> On 3/12/19 9:52 AM, Loris Bennett wrote:
>>> Hi,
>>> 
>>> I need to get $USER within an easyconfig.  I found the documentation 
>>> for the Python module easybuild.tools.environment, but this doesn't 
>>> seem to be what I need.
>>> 
>>> Can any one point me to the documentation about how to access 
>>> environment variables in an easyconfig?
>>> 
>>> Cheers,
>>> 
>>> Loris
>>> 
> --
> Dr. Loris Bennett (Mr.)
> ZEDAT, Freie Universität Berlin         Email [email protected]
-- 
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email [email protected]

Reply via email to