Hi Kenneth and Stijn,

In order to avoid potential conflicts related with the file system
permissions, we decided to use a single user account, but this requires to
submit the job as a different user ( in slurm --uid option), which only
root is allowed to.

I know that there are several ways to solve this problem, like a secondary
unix group (i.e. easybuild) for all the users + a proper mask (i.e. 0770),
but the current policy requires these.

Regards,

Jordi



On 12 August 2014 19:03, Kenneth Hoste <[email protected]> wrote:

>  Hi Jordi,
>
> Thanks for sharing your initial work on this!
>
>
> On 12/08/14 08:48, Jordi Blasco wrote:
>
>  Hi,
>
>  The slurm_job.py relies on the --wrap option of Slurm Workload Manager.
> This allows to simplify the complexity of the code quite a lot.
> The code is still in very early stage, and needs a clean-up and also some
> efforts in the parallelbuild.py.
> https://github.com/jordiblasco/easybuild-framework/tree/slurm
>
> Easier to spot what actually changed:
> https://github.com/jordiblasco/easybuild-framework/compare/slurm .
>
>
>
>  The major problem that we are facing is the privileges escalation. We
> are using an special user account to install all the applications in the
> right place and with the right permissions, but this requires root
> privileges, and for that reason I have been looking for quick alternatives.
>
> Hmm, can you elaborate here? Why would the special user account require
> root privileges exactly? W.r.t. privileges escalation, do mean that e.g.
> "newgrp - easybuild" and then using "eb --job ..." subsequently doesn't
> yield the expected results (i.e., installing something with eb under the
> 'easybuild' group)?
>
>
>
>  I have developed an EB command line wrapper that covers most of the
> needs that we have in NeSI. It doesn't resolve the dependencies into
> different jobs but it allows us to build the applications on all the
> architectures at the same time.
> In addition to that, it provides some useful features. Thanks to simple
> rules in the sudoers, we can submit the jobs as the mentioned user, and
> solving this way all the potential conflicts regarding to the ACLs. It also
> provides a simple logging system that allows you to track who installed
> what and when.
> https://github.com/jordiblasco/slurm-utils
>
>  I hope it can be helpful.
>
>  Regards,
>
>  Jordi
>
>
>
> On 9 August 2014 06:16, Pablo Escobar Lopez <[email protected]>
> wrote:
>
>> Hola Miguel  :)
>>
>>  as you already mentioned neither LSF or slurm is officially supported
>> yet, anyway even if it were supported, I would suggest to start learning
>> how easybuild works without the --job option because that is not a widely
>> tested option. So I think it´s better to start learning how easybuild works
>> without submitting to a scheduler and once you are used to how easybuild
>> works then start testing with the --job option.
>>
>>  The approach I use to run easybuild in different clusters is to have a
>> different easybuild config files for each of my clusters (where I define
>> different paths for install_dir or modules_dir) and then run the same
>> easyconfig (.eb file) in the different login nodes using the specific
>> easybuild config file for that cluster. This way, I write a single
>> easyconfig which I execute in each of my clusters login nodes so the
>> compilation is optimized for each machine. Automatizing this is quite
>> simple. If you want more details about this specific setup just email to
>> the list.
>>
>>  un saludo
>> Pablo.
>>
>>
>>
>>
>>
>>
>>
>>
>> 2014-08-08 18:08 GMT+02:00 Kenneth Hoste <[email protected]>:
>>
>>> HI Ricardo,
>>>
>>> On 08/08/14 17:48, Riccardo Murri wrote:
>>>  > Hi Miguel, all,
>>> >
>>> > On 8 August 2014 12:41, Miguel Bernabeu Diaz <[email protected]>
>>> wrote:
>>> >> I'm not sure if all or at least the most common schedulers' CLI could
>>> be
>>>   >> abstracted in this manner as I've only worked with Slurm and LSF.
>>> Either
>>>  >> way, would the community be interested in this kind of abstraction?
>>> Also,
>>> >> has someone worked on something similar or a port to Slurm or LSF we
>>> could
>>> >> extend or reuse?
>>> > We too would probably be interested in batch-system independence,
>>> > although we're in no hurry. (This would fit in the framework of a
>>> project
>>> > that will only start later on this year.)
>>>  I agree this would be a very nice feature indeed. --job is very useful
>>> for us, but it probably really only works for us.
>>> You basically need Torque + pbs_python (and maybe even align the
>>> versions a bit, to make it worse).
>>>
>>>  > Actually, if I am allowed a shameless self-plug, we already have a
>>> > Python framework that can submit and manage jobs on different
>>> > batch-queuing systems, see http://gc3pie.googlecode.com/
>>>
>>>  That sounds interesting!
>>>
>>> Let me pick up a crazy project idea we wrote up some time ago:
>>> https://gist.github.com/boegel/9225891 .
>>>
>>> How does gc3pie relate to that?
>>>
>>>  > I am not familiar with EasyBuild internals, but GC3Pie's job control
>>> > reduces to a few lines that should be relatively quick to plug in:
>>> >
>>> >      from gc3libs import Application
>>> >      from gc3libs.core import Engine
>>> >
>>> >      task = Application(['some', '-unix', '+command', 'here'], ...)
>>> >      engine = Engine(...)
>>> >      engine.add(task)
>>> >      # run task and wait for it to finish
>>> >      engine.progress()
>>> >
>>> > If there is interest, I can look at the sources and try to estimate
>>> > how much work it would be to integrate GC3Pie and EasyBuild.
>>>  The first step should be to abstract the current support for --job into
>>> a generic class, and make what's there now derive from that (probably
>>> naming it PbsPython).
>>>
>>> Then, SLURM & LSF could be just another version of that, and so can
>>> gc3pie and DRMAA.
>>>
>>> Unless gc3pie solves all our problems, that would even be better. ;-)
>>>
>>> As the project idea gist shows, supporting different batch systems is
>>> really a project on its own.
>>>
>>>
>>> K.
>>>
>>
>>
>>
>>  --
>> Pablo Escobar López
>> HPC systems engineer
>> Biozentrum, University of Basel
>> Swiss Institute of Bioinformatics SIB
>> Email: [email protected]
>> Phone: +41 61 267 15 82 <%2B41%2061%20267%2015%2082>
>> http://www.biozentrum.unibas.ch
>>
>
>
>

Reply via email to