Differences between revisions 1 and 17 (spanning 16 versions)
Revision 1 as of 2015-07-21 02:16:40
Size: 2586
Comment:
Revision 17 as of 2015-07-22 04:07:37
Size: 6831
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Introduction = = Summary pages =

=
= Introduction ==
Line 5: Line 7:
https://nodus.ligo.caltech.edu:30889/detcharsummary/  https://nodus.ligo.caltech.edu:30889/detcharsummary/
Line 7: Line 9:
Different kinds of plots are can be produced: time series, spectra, spectrograms, Rayleigh gaussianity statistics, etc. This is all produced using the GWsumm software (https://github.com/gwpy/gwsumm) developed for the big detectors (https://ldas-jobs.ligo.caltech.edu/~detchar/summary/). Different kinds of plots are can be produced: time series, spectra, spectrograms, Rayleigh gaussianity statistics, etc. This is all produced using the [[https://github.com/gwpy/gwsumm|GWsumm]] software developed for the big detectors (https://ldas-jobs.ligo.caltech.edu/~detchar/summary/).
Line 9: Line 11:
= Configuration = The 40m summary pages are also hosted on the LDAS server, which is protected by LIGO.ORG credentials:
 https://ldas-jobs.ligo.caltech.edu/~40m/summary/

== Configuration ==
Line 13: Line 18:
`nodus:/cvs/cds/caltech/chans/GWsummaries/`  `nodus:/cvs/cds/caltech/chans/GWsummaries/`
Line 19: Line 24:
For information on the INI format itself see: https://ldas-jobs.ligo.caltech.edu/~duncan.macleod/gwsumm/latest/ or http://www.ligo.caltech.edu/~misi/iniguide.pdf For information on the INI format itself see the [[https://ldas-jobs.ligo.caltech.edu/~duncan.macleod/gwsumm/latest/|GWsumm docs]] or this [[http://www.ligo.caltech.edu/~misi/iniguide.pdf|short guide]].
Line 21: Line 26:
= Workflow = == Technical info ==

=== Workflow ===
Line 25: Line 32:
1. A cron-type Condor (http://research.cs.wisc.edu/htcondor/manual/) job wakes up and executes the `gw_daily_summary` bash script which: 1. A cron-type [[http://research.cs.wisc.edu/htcondor/manual/|Condor]] job wakes up and executes the `gw_daily_summary` bash script which:
Line 49: Line 56:
Note that this whole process depends on the 40m frames being available in the cluster. The processes responsible for that are handled by Dan Kozak. Note that this whole process depends on the 40m frames being available in the cluster; the processes responsible for that are handled by Dan Kozak.
Also, a similiar process takes place once a day to re-process the plots from the previous UTC day (`gw_daily_summary_catchup` script).

=== Software ===

Several independent pieces come into play:

 1. ''[[https://gwpy.github.io/|GWpy]]'': python module to handle LIGO data developed by Duncan Macleod;

 2. ''[[https://github.com/gwpy/gwsumm|GWsumm]]'': python module and associated executables (`gw_summary` and `gw_summary_pipe`) that produced detector summary pages, based on GWpy ([[https://ldas-jobs.ligo.caltech.edu/~duncan.macleod/gwsumm/latest/index.html|docs]]);

 3. ''Configuration files'': stored locally in nodus and VCS version controlled;

 4. ''40m-specific scripts'': git repository containing bash scripts and condor submit files that make the necessary preparations to run GWsumm jobs for the 40m, also take care of syncing HTML, plots and config files between nodus and LDAS;

 5. ''Data transfer'': cron jobs that sync frames from nodus to LDAS, managed by Dan Kozak.

=== Notes ===

 * On the cluster side, everything (except the frame transfer) is executed from the [[40mLDASaccount|40m shared LDAS account]].

 * To update the plots of a past day, you need to log int to the 40m shared account and run:

 `./summary/bin/gw_daily_summary --day YYYYMMDD --file-tag some_custom_tag`

 (the `file-tag` option is not strictly necessary but will prevent conflict with other instances of the code running simultaneously).

== Running your own jobs ==

If you would like to test a configuration file, you can run the code manually.

=== LDAS cluster ===

==== Default environment ====

From any CIT headnode, you can use the default detchar installation; just source the following script:

 `source /home/detchar/opt/gwpysoft/etc/gwpy-user-env.sh`

You will also need to obtain Kerberos credentials before proceding:

 `kinit albert.einstein`

Then, to use a given configuration file to create HTML and plots for ''today's'' data, `cd` into the desired destination directory and run:

 `gw_summary day --ifo c1 --config-file path/to/configfile`

You can add as many `--config-file` options as desired. In general, you will want to point to the file containing the default options:

 `gw_summary day --ifo c1 --config-file path/to/defaults.ini --config-file path/to/configfile`

If you want to use data from a day other than today, just add the date in `YYYYMMDD` format after `day`, e.g.:

 `gw_summary day 20150721 --ifo c1 --config-file path/to/configfile`

For testing purposes, it is usually quicker to process a shorter amount of time, say 10 minutes. You can do this by providing specific GPS start and end times:

 `gw_summary gps 1121558360 1121558960 --ifo c1 --config-file path/to/configfile`

Finally, use the `--verbose` option to see a more detailed output.

==== Custom environment ====

If you wish to work with a local version of the code, you can install the software in your home directory:

1. Clone the GWpy repository and install locally:

{{{
git clone https://github.com/gwpy/gwpy.git
cd gwpy
python setup.py install --user
}}}

2. Clone the GWsumm repository and install locally:

{{{
git clone https://github.com/gwpy/gwsumm.git
cd gwsumm
python setup.py install --user
}}}

After doing this, you will want to make sure you have added `~/.local/bin` to your path, so that Python can find these custom modules. You can achieve this by modifying the variables (add these lines to your `~/.bashrc` file to avoid having to do this every time):

{{{
PATH=/home/albert.einstein/.local/bin:${PATH}
PYTHONPATH=/home/albert.einstein/.local/bin:${PYTHONPATH}
}}}

If you wish to modify the gwsumm or gwpy codes, it is recommended that you [[https://help.github.com/articles/fork-a-repo/|fork]] the repos and follow the above procedures with the corresponding URLs instead. After effecting a change, just run `python setup.py install --user` to update the installation.

Summary pages

Introduction

The summary pages are a website showing plots of useful channels updated every ~30min. They can be found here:

Different kinds of plots are can be produced: time series, spectra, spectrograms, Rayleigh gaussianity statistics, etc. This is all produced using the GWsumm software developed for the big detectors (https://ldas-jobs.ligo.caltech.edu/~detchar/summary/).

The 40m summary pages are also hosted on the LDAS server, which is protected by LIGO.ORG credentials:

Configuration

The content of the pages is controled by configuration files found in:

  • nodus:/cvs/cds/caltech/chans/GWsummaries/

These are synced to the LDAS computer cluster, where the data are processed. The filenames must begin with the characters c1 and have the .ini extension. A special case is the defaults.ini file, which contains HTML and other general information. Although this file is always loaded, its settings can be overwritten by custom files (e.g. if the same property is defined in defaults.ini and c1-lsc.ini, the latter will take precedence).

The remote LDAS folder mirrors the local one in nodus, where the files are version controlled (note that there no longer is version control on the LDAS side, as this was redundant).

For information on the INI format itself see the GWsumm docs or this short guide.

Technical info

Workflow

The central part of the process are cron-like gwsumm jobs executed on the cluster every 30min. This is the chain of events:

1. A cron-type Condor job wakes up and executes the gw_daily_summary bash script which:

  • Sets up Python environment;
  • Rsyncs nodus and LDAS directories containing config files;

  • Lists the config files present;
  • Executes a gw_summary_pipe job with proper options and waits for it to finish.

2. Files are processed in parallel in the cluster:

  • gw_summary_pipe spawns multiple gw_summary jobs (one per config file);

  • Each gw_summary job corresponds to a node in the Condor DAG;

  • Condor jobs are processed in the local universe, maximum two at a time (default).

3. Output is synced back to nodus:

  • Handled by a regular cron tab running every 15 minutes;
  • Only HTML from local time "yesterday," "today" and "tomorrow" (if exists) are rsynced.

Note that this whole process depends on the 40m frames being available in the cluster; the processes responsible for that are handled by Dan Kozak. Also, a similiar process takes place once a day to re-process the plots from the previous UTC day (gw_daily_summary_catchup script).

Software

Several independent pieces come into play:

  1. GWpy: python module to handle LIGO data developed by Duncan Macleod;

  2. GWsumm: python module and associated executables (gw_summary and gw_summary_pipe) that produced detector summary pages, based on GWpy (docs);

  3. Configuration files: stored locally in nodus and VCS version controlled;

  4. 40m-specific scripts: git repository containing bash scripts and condor submit files that make the necessary preparations to run GWsumm jobs for the 40m, also take care of syncing HTML, plots and config files between nodus and LDAS;

  5. Data transfer: cron jobs that sync frames from nodus to LDAS, managed by Dan Kozak.

Notes

  • On the cluster side, everything (except the frame transfer) is executed from the 40m shared LDAS account.

  • To update the plots of a past day, you need to log int to the 40m shared account and run:

    ./summary/bin/gw_daily_summary --day YYYYMMDD --file-tag some_custom_tag

    (the file-tag option is not strictly necessary but will prevent conflict with other instances of the code running simultaneously).

Running your own jobs

If you would like to test a configuration file, you can run the code manually.

LDAS cluster

Default environment

From any CIT headnode, you can use the default detchar installation; just source the following script:

  • source /home/detchar/opt/gwpysoft/etc/gwpy-user-env.sh

You will also need to obtain Kerberos credentials before proceding:

  • kinit albert.einstein

Then, to use a given configuration file to create HTML and plots for today's data, cd into the desired destination directory and run:

  • gw_summary day --ifo c1 --config-file path/to/configfile

You can add as many --config-file options as desired. In general, you will want to point to the file containing the default options:

  • gw_summary day --ifo c1 --config-file path/to/defaults.ini  --config-file path/to/configfile

If you want to use data from a day other than today, just add the date in YYYYMMDD format after day, e.g.:

  • gw_summary day 20150721 --ifo c1 --config-file path/to/configfile

For testing purposes, it is usually quicker to process a shorter amount of time, say 10 minutes. You can do this by providing specific GPS start and end times:

  • gw_summary gps 1121558360 1121558960 --ifo c1 --config-file path/to/configfile

Finally, use the --verbose option to see a more detailed output.

Custom environment

If you wish to work with a local version of the code, you can install the software in your home directory:

1. Clone the GWpy repository and install locally:

git clone https://github.com/gwpy/gwpy.git
cd gwpy
python setup.py install --user

2. Clone the GWsumm repository and install locally:

git clone https://github.com/gwpy/gwsumm.git
cd gwsumm
python setup.py install --user

After doing this, you will want to make sure you have added ~/.local/bin to your path, so that Python can find these custom modules. You can achieve this by modifying the variables (add these lines to your ~/.bashrc file to avoid having to do this every time):

PATH=/home/albert.einstein/.local/bin:${PATH}
PYTHONPATH=/home/albert.einstein/.local/bin:${PYTHONPATH}

If you wish to modify the gwsumm or gwpy codes, it is recommended that you fork the repos and follow the above procedures with the corresponding URLs instead. After effecting a change, just run python setup.py install --user to update the installation.

DailySummaryHelp (last edited 2022-06-23 20:03:35 by TegaedoATligoDOTorg)