Simtest Howto

Prerequisites for running a basic simtest are:

  • building and installing ipp software
  • installing configuration files

See "IPP 2.6 simtest tutorial pantasks - ippMonitor" (pdf): by A. Riffeser for an in-depth discussion.

simtest steps:

Create a database (ipp001 is the mysql server on the manoa cluster):

% mysql -h ipp001 -u ipp -p
Enter password:
mysql> create database dbname;   
Query OK, 1 row affected (0.00 sec)

Change to a working directory (preferably empty)

Start a pantasks server

%pantasks
Welcome to pantasks - parallel task scheduler


pantasks: 

Load the simtest configuration:

pantasks: module simtest.pro

Start a simtest

pantasks: simtest dbname hostname init

dbname is the database name, host is the host on which you're running the simtest, and runlevel is either new, inject, or run.

If you are using a newly created database you want to use the "new" option. You can get more information through pantasks:

pantasks: simtest
USAGE: simtest (dbname) (hostname) (init)
 if (init) == run    : just run the analysis tasks
 if (init) == inject : (re)create the database and (re)inject the images
 if (init) == new    : restart completely from scratch

You're asked if you want to delete the tables in your database:

*** delete the tables from database dbname? ***
*** to delete the tables, answer YES, and give password ***
*** WARNING: this action is permanent ***

delete the tables (YES/[n]): YES
enter dbh connection password:

Simulated data is created an injected into the database:

2009-05-19 02:26:38Z|ipp022              |I|ppSim
    Adding 0 stars between 15.500000 and 20.727417 mag
2009-05-19 02:26:42Z|ipp022              |4|psastro
    no supplied reference header data
output catalog has 7234 stars (36170 measures, 5 secfilt)
SUCCESS
2009-05-19 02:26:45Z|ipp022              |I|psastro
    ran getstar : 3.141629 sec
2009-05-19 02:26:46Z|ipp022              |I|psastro
    loaded 7234 reference stars : 0.239388 sec
2009-05-19 02:26:46Z|ipp022              |I|ppSim
    Adding 7234 reference stars

Running [/data/ipp003.0/ippTests/psconfig/default.lin64/bin/pxinject -newImfile 
-exp_id 36 -tmp_class_id file.0 -uri file://data/ipp003.0/ippTests/simtest_dir/
raw/simtest.001.015.fits -dbname dbname]...
Running [/data/ipp003.0/ippTests/psconfig/default.lin64/bin/pxinject -
updatenewExp -exp_id 36 -state run -dbname dbname]...
exp_name : simtest.001.016.
1 files in fileset.

After the images are injected you get a pantasks prompt. You can get the status of your simtest with the "status" command:

pantasks: status

 Scheduler is running
 Controller is running

 Task Status
  AV Name                    Njobs  Ngood Nfail Ntime Command                
  ++ automate.block              5      5     0     0 dettool                
  ++ automate.check            118    118     0     0 detselect              
  ++ automate.launch             1      1     0     0 dettool                
  ++ automate.regular          120    120     0     0 stacktool              
  ++ register.imfile.load      125    125     0     0 regtool                
  ++ register.imfile.run        76     76     0     0 register_imfile.pl     
  ++ register.exp.load         119    119     0     0 regtool                
  ++ register.exp.run           76     76     0     0 register_exp.pl        
  ++ detrend.process.load      120    120     0     0 dettool                
  ++ detrend.process.run        20     20     0     0 detrend_process_imfile.pl
  ++ detrend.processexp.load   120    120     0     0 dettool                
  ++ detrend.processexp.run     20     18     0     0 detrend_process_exp.pl 
  ++ detrend.stack.load        120    119     0     0 dettool                
  ++ detrend.stack.run           1      0     0     0 detrend_stack.pl       
  ++ detrend.normstat.load     116    116     0     0 dettool                
  ++ detrend.normstat.run        0      0     0     0 (dynamic)              
  ++ detrend.norm.load         125    124     0     0 dettool                
  ++ detrend.norm.run            0      0     0     0 (dynamic)              
  ++ detrend.normexp.load      119    119     0     0 dettool                
  ++ detrend.normexp.run         0      0     0     0 (dynamic)              
  ++ detrend.resid.load        122    122     0     0 dettool                
  ++ detrend.resid.run           0      0     0     0 (dynamic)              
  ++ detrend.residexp.load     119    119     0     0 dettool                
  ++ detrend.residexp.run        0      0     0     0 (dynamic)              
  ++ detrend.reject.load       121    120     0     0 dettool                
  ++ detrend.reject.run          0      0     0     0 (dynamic)              
  ++ detrend.correct.load      122    121     0     0 dettool                
  ++ detrend.correct.run         0      0     0     0 (dynamic)              
  ++ flatcorr.addcamera         18     18     0     0 flatcorr               
  ++ flatcorr.load             119    119     0     0 flatcorr               
  ++ flatcorr.run                0      0     0     0 (dynamic)              
  ++ chip.imfile.load          123    123     0     0 chiptool               
  ++ chip.imfile.run             0      0     0     0 (dynamic)              
  ++ chip.advanceexp            17     17     0     0 chiptool               
  -+ chip.cleanup.load           0      0     0     0 (dynamic)              
  -+ chip.cleanup.run            0      0     0     0 (dynamic)              
  ++ camera.exp.load           120    119     0     0 camtool                
  ++ camera.exp.run              0      0     0     0 (dynamic)              
  -+ camera.cleanup.load         0      0     0     0 (dynamic)              
  -+ camera.cleanup.run          0      0     0     0 (dynamic)              
  ++ fake.imfile.load          125    125     0     0 faketool               
  ++ fake.imfile.run             0      0     0     0 (dynamic)              
  ++ fake.advanceexp            17     17     0     0 faketool               
  -+ fake.cleanup.load           0      0     0     0 (dynamic)              
  -+ fake.cleanup.run            0      0     0     0 (dynamic)              
  ++ warp.exp.load             120    120     0     0 warptool               
  ++ warp.exp.run                0      0     0     0 (dynamic)              
  ++ warp.skycell.load         120    120     0     0 warptool               
  ++ warp.skycell.run            0      0     0     0 (dynamic)              
  ++ warp.advancerun            17     17     0     0 warptool               
  -+ warp.cleanup.load           0      0     0     0 (dynamic)              
  -+ warp.cleanup.run            0      0     0     0 (dynamic)              
  ++ diff.skycell.load         121    121     0     0 difftool               
  ++ diff.skycell.run            0      0     0     0 (dynamic)              
  -+ diff.cleanup.load           0      0     0     0 (dynamic)              
  -+ diff.cleanup.run            0      0     0     0 (dynamic)              
  ++ stack.skycell.load        121    121     0     0 stacktool              
  ++ stack.skycell.run           0      0     0     0 (dynamic)              
  -+ stack.cleanup.load          0      0     0     0 (dynamic)              
  -+ stack.cleanup.run           0      0     0     0 (dynamic)              

 Jobs in Pantasks Queue
 8: detrend.processexp.run  2591 detrend_process_exp.pl (6aaec0)
 8: detrend.stack.run  2626     detrend_stack.pl (6be410)
 8: detrend.processexp.run  2634 detrend_process_exp.pl (697ef0)
 8: detrend.correct.load  2919              dettool (68bc10)
 8: detrend.norm.load  2920              dettool (67c210)
 8: detrend.reject.load  2921              dettool (6a0e40)
 8: detrend.stack.load  2922              dettool (688540)
 8: camera.exp.load  2923              camtool (68bb80)

To speed up your simtest you can add additional pclients with the command:

pantasks: controller host add hostname
HostID: 2

However, there are some caveats. First, adding addional hosts is generally not permitted on nodes in the MHPCC cluster. Second, the Manoa development machines have four cores per node so adding three hosts will monopolize all resources.

Status output for a successful simtest:

pantasks: status

 Scheduler is running
 Controller is running

 Task Status
  AV Name                    Njobs  Ngood Nfail Ntime Command                
  ++ automate.block              5      5     0     0 dettool                
  ++ automate.check            593    593     0     0 detselect              
  ++ automate.launch             7      7     0     0 chiptool               
  ++ automate.regular         1095   1095     0     0 difftool               
  ++ register.imfile.load     1094   1094     0     0 regtool                
  ++ register.imfile.run        76     76     0     0 register_imfile.pl     
  ++ register.exp.load        1093   1093     0     0 regtool                
  ++ register.exp.run           76     76     0     0 register_exp.pl        
  ++ detrend.process.load     1098   1097     0     0 dettool                
  ++ detrend.process.run        75     75     0     0 detrend_process_imfile.pl
  ++ detrend.processexp.load  1094   1093     0     0 dettool                
  ++ detrend.processexp.run     75     75     0     0 detrend_process_exp.pl 
  ++ detrend.stack.load       1092   1092     0     0 dettool                
  ++ detrend.stack.run           5      5     0     0 detrend_stack.pl       
  ++ detrend.normstat.load    1089   1089     0     0 dettool                
  ++ detrend.normstat.run        5      5     0     0 detrend_norm_calc.pl   
  ++ detrend.norm.load        1106   1106     0     0 dettool                
  ++ detrend.norm.run            5      5     0     0 detrend_norm_apply.pl  
  ++ detrend.normexp.load     1091   1090     0     0 dettool                
  ++ detrend.normexp.run         5      5     0     0 detrend_norm_exp.pl    
  ++ detrend.resid.load       1085   1085     0     0 dettool                
  ++ detrend.resid.run          75     75     0     0 detrend_resid_imfile.pl
  ++ detrend.residexp.load    1093   1093     0     0 dettool                
  ++ detrend.residexp.run       75     75     0     0 detrend_resid_exp.pl   
  ++ detrend.reject.load      1097   1096     0     0 dettool                
  ++ detrend.reject.run          7      7     0     0 detrend_reject_exp.pl  
  ++ detrend.correct.load     1098   1098     0     0 dettool                
  ++ detrend.correct.run         0      0     0     0 (dynamic)              
  ++ flatcorr.addcamera        168    168     0     0 flatcorr               
  ++ flatcorr.load            1093   1093     0     0 flatcorr               
  ++ flatcorr.run                0      0     0     0 (dynamic)              
  ++ chip.imfile.load         1093   1093     0     0 chiptool               
  ++ chip.imfile.run            16     16     0     0 chip_imfile.pl         
  ++ chip.advanceexp           166    166     0     0 chiptool               
  -+ chip.cleanup.load           0      0     0     0 (dynamic)              
  -+ chip.cleanup.run            0      0     0     0 (dynamic)              
  ++ camera.exp.load          1090   1089     0     0 camtool                
  ++ camera.exp.run             16     16     0     0 camera_exp.pl          
  -+ camera.cleanup.load         0      0     0     0 (dynamic)              
  -+ camera.cleanup.run          0      0     0     0 (dynamic)              
  ++ fake.imfile.load         1102   1102     0     0 faketool               
  ++ fake.imfile.run            16     16     0     0 fake_imfile.pl         
  ++ fake.advanceexp           165    165     0     0 faketool               
  -+ fake.cleanup.load           0      0     0     0 (dynamic)              
  -+ fake.cleanup.run            0      0     0     0 (dynamic)              
  ++ warp.exp.load            1082   1082     0     0 warptool               
  ++ warp.exp.run               16     16     0     0 warp_overlap.pl        
  ++ warp.skycell.load        1098   1098     0     0 warptool               
  ++ warp.skycell.run           32     32     0     0 warp_skycell.pl        
  ++ warp.advancerun           163    163     0     0 warptool               
  -+ warp.cleanup.load           0      0     0     0 (dynamic)              
  -+ warp.cleanup.run            0      0     0     0 (dynamic)              
  ++ diff.skycell.load        1085   1085     0     0 difftool               
  ++ diff.skycell.run           16     16     0     0 diff_skycell.pl        
  -+ diff.cleanup.load           0      0     0     0 (dynamic)              
  -+ diff.cleanup.run            0      0     0     0 (dynamic)              
  ++ stack.skycell.load       1097   1097     0     0 stacktool              
  ++ stack.skycell.run           3      3     0     0 stack_skycell.pl       
  -+ stack.cleanup.load          0      0     0     0 (dynamic)              
  -+ stack.cleanup.run           0      0     0     0 (dynamic)              

 Jobs in Pantasks Queue
 5: detrend.reject.load  4822              dettool (68ec60)
 5: detrend.normexp.load  4823              dettool (692030)
 5: camera.exp.load  4824              camtool (693870)
 5: detrend.processexp.load  4825              dettool (68f410)
 5: detrend.process.load  4826              dettool (692560)

The number of jobs in stack.skycell.run varies from 2 to 4.

The pantask server will keep running and loading jobs. To terminate the server use "halt"; to pause the server use "stop"; to restart it and resume job execution use "run"; and to kill the server use "quit".

Using ippMonitor to look at simtest results

Your simtest results can be viewed using the ippMonitor. Outside the Pan-STARRS network the ippMonitor for the Manoa cluster can be accessed at: http://alala2.ifa.hawaii.edu/ippMonitor/ From inside it is: http://alala.ifa.hawaii.edu/ippMonitor/ The MHPCC cluster is only available from inside the network at: http://ipp004.ifa.hawaii.edu/ippMonitor/ A user name and password is needed for each site (independent of the other).

To see your database it has to be added to the ippMonitor using the command:

ippadmin project (dbserver) (dbuser) (dbname)
      create a new ipp project (database)