UNICORE Application Repository
This is a repository of common UNICORE IDB Applicaiton entries. You're invited to use it and contribute back to the main repository. The goal is to have a growing repository of UNICORE applications ready for re-use and leading to more consistent abstractions of applications across compute resources.
Usage
This repository can be used in two ways. Either as UNICORE system wide IDB entries managed by an administrator, or as user specific entries managed by users.
IDB entries from this repository can be enabled or disabled. Typically, a site would only have those applications enabled that are really available. Entries are enabled by creating symbolic links to them in the enabled directory.
$ cd enabled
$ ln -s ../idb/<name>::<version>.idb
Both ways of management are related to the XNJS.idbfile
setting in
the xnjs.xml or xnjs_legacy.xml files, depending on your setup. You
can have multiple idbfile entries in these configuration files.
When using this repository for the management of applications, the UNICORE/X needs to be configured to use the enabled directory as the XNJS.idbfile. In that case, a mail idbfile needs to be defined to contain the resource definitions.
<eng:Property name="XNJS.idbfile" value="conf/unicore-idb/enabled/" />
<eng:Property name="XNJS.idbfile.main" value="conf/simpleidb" />
This repository can also be used to manage user specific applications.
<eng:Property name="XNJS.idbfile.ext.1" value="${HOME}/.unicore/idb/*.idb" />
This second example references a subdirectory of the user's home
directory, expecting *.idb files containing IDB application entries
for parsing. This way, users can define their own applications. You
can easily make this path a symbolic link to the enabled
directory
within this repository and thus use it to manage your user defined
applications.
When sharing users' home directories across various sytems, as may be
the case in some compute centres, we recommend to setup UNICORE to
look into machine specific directories. For instance, if the name of
the resource is JURECA, then the user specific IDB entries for this
machine may reside in ${HOME}/.unicore/idb/JURECA/*.idb
.
Site Specifics
One of the key ideas behind these application abstractions is to allow for site specific configuration. With this goal in mind, the entries as provided can only serve as a starting point for your own configuration. In order to allow for you to keep track of your own changes as well as retrieve updates from the upstream repository, we recommend to start using the configuration from a site specific Git branch, e.g. by issuing
$ git checkout -b <SITE-NAME> master
when beginning your work. Updates from the upstream repository can then be merged carefully into your site specific branch. Additionally, you can keep track of multiple sites' configurations if this is a requirement for you.
$ git merge master
Future Work
We are planning to provide convenience scripts to make it even easier to manage, i.e. list, enable, and disable, the various applications and their versions.