[Swift-devel] hang checker fun

Allan Espinosa aespinosa at cs.uchicago.edu
Sun Mar 27 16:55:01 CDT 2011


Here it is.  The get_app() calls are simple wrappers to readData()

type offset {
  int off;
  int size;
}
type offset_file;
(offset _off[]) mkoffset(int _size, int _group_size) {
   offset_file file <single_file_mapper; file=@strcat("LGU/offset-",_size)>;
   file = mkoffset_file(_size, _group_size);
   _off = readData(file);
}
app (offset_file _off) mkoffset_file(int _size, int _group_size) {
  mkoffset _size _group_size;
}

/* TODO: data management zip jobs */

/* Main program */
int run_id = 664;
int agg_size = 80;
int loc_size = 20;
string datadir =
  "gsiftp://gridftp.pads.ci.uchicago.edu//gpfs/pads/swift/aespinosa/science/cybershake/Results";

Station site = get_site(run_id);

Sgt sgt_var <ext; exec="getsgtvar.rb", r=run_id, s=site.name,
  l="gsiftp://gridftp.pads.ci.uchicago.edu//gpfs/pads/swift/aespinosa/science/cybershake/SgtFiles">;
Rupture rups[] = get_ruptures(run_id, site);

foreach rup in rups {
  string loc_sub = @strcat(datadir, "/", site.name, "/", rup.source,
"/", rup.index);
  Sgt sub <ext; exec="getsub.rb", l=loc_sub, n=site.name, s=rup.source,
      r=rup.index>;
  string var_str[] = get_variations( site, rup,
      "gsiftp://gridftp.pads.ci.uchicago.edu//gpfs/pads/swift/aespinosa/science/cybershake/RuptureVariations"
);
  Variation vars[] <array_mapper; files=var_str>;

  sub = extract(sgt_var,  site, vars[rup.size-1]);

  string seis_str[];
  string peak_str[];

  foreach var,i in vars {
    seis_str[i] = @strcat(loc_sub, "/Seismogram_", site.name, "_", rup.source,
                          "_", rup.index, "_", i, ".grm");
    peak_str[i] = @strcat(loc_sub, "/PeakVals_", site.name, "_", rup.source,
                          "_", rup.index, "_", i, ".bsa");
  }

  Seismogram seis[] <array_mapper; files=seis_str>;
  PeakValue  peak[] <array_mapper; files=peak_str>;

  if(rup.size <= loc_size) {
    /*
     * Not worth to transfer the data. Execute on TeraGrid instead.
     * Also execute on localhost.
     */
    foreach var,i in vars {
      (seis[i], peak[i]) = seispeak_local(sub, var, site);
    }
  } else {if(rup.size <= agg_size) {
    /* Execute on a single resource */
    (seis, peak) = seispeak_agg(sub, vars, site, rup.size);
  } else {
    /*offset offs[] = mkoffset(rup.size, agg_size);*/
    /*for i in offs {*/
      /*(seis, peak) = seispeak_agg(sub, vars[i.off:i.off+off.size],*/
                                  /*off.size);*/
    /*}*/
  }}
}


2011/3/27 Mihael Hategan <hategan at mcs.anl.gov>:
> May I see the script?
>
> On Fri, 2011-03-25 at 19:42 -0500, Allan Espinosa wrote:
>> this has been occurring for 70 times already.  What i expect is for
>> the app with SgtDim sub to run and close the future.
>>
>> 2011-03-25 19:40:12,217-0500 WARN  HangChecker No events in 10s.
>> 2011-03-25 19:40:12,217-0500 WARN  HangChecker
>> Registered futures:
>> Rupture[] rups  Closed, 1 elements, 0 listeners
>> Variation vars - Closed, no listeners
>> SgtDim sub - Open, 1 listeners
>> string site  Closed, no listeners
>> Variation[] vars  Closed, 72 elements, 0 listeners
>> ----
>>
>> Waiting threads:
>> 0-13
>> 0-13-0-7
>> 0-13-0-8-1-1
>> ----
>>
>>
>
>
>
>



-- 
Allan M. Espinosa <http://amespinosa.wordpress.com>
PhD student, Computer Science
University of Chicago <http://people.cs.uchicago.edu/~aespinosa>



More information about the Swift-devel mailing list