Profiler for GXP make

From Intrigger

Jump to: navigation, search

Contents

logfuse

Logfuse is a very simple software that takes logs for GXP make.

repository:

# svn co svn+ssh://tsukuba000.intrigger.omni.hpcc.jp/data/1/shibata/logfuse_rep logfuse 

build:

# make all

usage:

mount:

# ./logfuse <source_dir> <mount_dir> <log_dir>

unmount:

# fusermount -u <mount_dir>

output:

<log_dir>

With 'GXP make' on a single node:

Important: Fisrt of all, ensure that your GXP is the most recent version.

Lunch gxpc and do not explore any node.

# cd <logfuse_dir>
# ./logfuse <source_dir> <mount_dir> <log_dir>
# cd <mount_dir>
# gxpc make -j xx -- --state_dir = <log_dir>
# killall logfuse

With 'GXP make' on multi nodes and a single file system:

Important: Fisrt of all, ensure that your GXP is the most recent version.

Lunch gxpc and do explore some nodes.

# gxpc cd <logfuse_dir>
# gxpc e './logfuse <source_dir> <mount_dir> <log_dir>'
# cd <mount_dir>
# gxpc make -j xx -- --state_dir = <log_dir>
# gxpc e 'fusermount -u <mount_dir>'

make_dependancy.rb

make_dependancy.rb makes data required for simulation of the logged workflow.

usage:

# ruby make_dependancy.rb <log_dir> <dat_dir>

output:

4 files 'dependancy.dat' and 'cost.dat', 'names.dat', 'workflow.dot' will be created at the directory <dat_dir>.

'dependancy.dat':

enumerates dependency relations between files and jobs. e.g.,

  F1 J1
  F2 J1

means F1 & F2 -> J1, where F1 and F2 are files and J1 is a job.

'cost.dat':

Describing computational cost of tasks and size of files. e.g.,

  F1 1024
  J1 0.07

means that the file F1 is 1024 byte and J1 costs 0.07 sec.

'names.dat':

Real logged names,

  F1 hoge.txt
  J1 sort hoge.txt

means that F1 represents 'hoge.txt' and J1 represents 'sort hoge.txt'.

'workflow.dot':

A "dot" file for Graphviz. If Graphviz is installed, you can generate 'workflow.html' which is a simple task graph viewer written in java-script.

How to generate is:

# ruby make_html.rb <dat_dir>
Personal tools