The Use Characterization DX Program

The program receives two data sets which represent the total cpu time and number of jobs contibuting to that time as a function of wall-clock time and number of cpu's used. The program makes a bar graph with 20 wall-clock time bins and 10 cpu number bins (log distrubuted). Each bar has a color related to the number of jobs and a height related to the cpu time. The DX program has several separate sections which will be refered to by number in the list below and on the program image:

  1. A cylinder geometry is generated by the macro NewQuadSurface, rotated 90 degress, and named (using a transmitter) Cyl_glyph .

  2. A data set is chosen by the user with the Selector interactor shown in the upper-left of the program and in the control panel window inset in the program. Data was collected by month, so the interactor has month names. The Format module converts the month name to a file name as shown.

    This filename, along with a file format specification of
    "general, grid=19x10, field=time,number, interleaving=field" (import module:third input) gets the data into the DX program. The "field" specification names two variables in the same file as "time" and "number". The two Select modules just below the Import module separate out the the two variables (time, number). The second input of each is the respective dataset name.

    The selector interactor output is also used to generate a month-name caption (named Month using a transmitter) for the final image.

  3. A maximum for the "time" variable is generated by the Statistics module, converted to a string by the format module, made into a caption and named Max_time with a transmitter.

  4. A maximum for the "number" variable is generated by the Statistics module, converted to a string by the format module, made into a caption and named Max_Num with a transmitter.

  5. The Compute module takes the log of the number of jobs to lower the dynamic range, colors it according to the colormap, then once it is colored by "number" uses a Replace module to swap in the time data.

  6. A set of cylinder glyphs are generated with size proportional to the cpu time, then scaled up in the z direction about 15 times for a better aspect ratio.

  7. Two text strings are produced as axis labels. The dialog boxs for both of them are shown. Note that a text module generates real geometry and must be placed in the scene at the right spot with the right orientation. The "position", "up" and "direction" fields determine this.

  8. Finally, all of the pieces are collected and rendered.

The resulting image for one month is shown below.