Transcript PowerPoint!

With RTAI, MPICH2, MPE, Jumpshot,
Sar and hopefully soon OProfile or VTune
Dawn Nelson
CSC523
We already know that parallel programming makes
good use of multiple processors, but we don’t
always know if our programs are making the most
efficient use of MPI.
 Knowing how to use something doesn’t necessarily
mean you know how it works.
 There are many different ways to get data from
point A to point B.
 If you don’t know which way is better, try it, time
it, profile it.
 When adding in calls to the RTAI API, you can find
out if you are adding overhead or benefit.
 You can determine other bottlenecks or
inefficiencies.

 Within



your code
For overall timing, add gettimeofday() call in
your program at the beginning and end to get
overall time.
Use MPI_WTime() to time MPI calls.
Add MPE tags for user programmed events. MPE
already keeps track of send, receive, wait,
barrier and other MPI calls.
 Without



changing code
Use the system call sar (yum install sysstat).
Use an open source profiler such as OProfile.
Use a purchased profiler such as VTune.
 MPE
tags in your code look like this:

#include <mpe.h>

int event,event1a, event1b;

MPE_Log_get_state_eventIDs( &event1a, &event1b );

MPE_Describe_state(event1a,event1b,"slave
compute“,"orange");

MPE_Start_log();

…… //your code block here

MPE_Log_event(event1b, 0, "slave_compute_end");

//logging environment ends with MPI_Finalize();
//start of code section to profile
A
clog2 file is generated.
 Use Jumpshot to graphically display the file:

>jumpshot filename.clog2
Matrix Multiply, using 4 nodes, master-slave scenario
Matrix Multiply from the midterm with MPI_Barrier() call
 Real
Time computing is done at the highest
priority (SCHED_FIFO 99)
 Real Time computing is non-preemptible.
 Real Time computing blocks interrupts and
interference from the OS and from users.
 Reduces Jitter and Latency: processes finish
at the same time.
 For high compute to IO ratios, Real Time
improves overall processing speed.
RTAI-LXRT
Architecture
RTAI-MPI
Architecture
Soft LXRT Real Time implementation.
Matrix Multiply without RTAI
 Jitter
is the dissimilar completion times of
MPI workers, as it effects the timing of the
overall process.
 Jitter is caused by interference of interrupts
by the operating system, other processes,
other users.
 By running a process 100 times and collecting
the overall time, jitter can be measured.
 Jitter was measured using an MPI application
with and without injected interference from
a cpu hog.
 Jitter was measured using an RTAI-MPI
application with and without injected
interference from a cpu hog.
 MPE
shows chronologically when MPI calls are
done and completed but not the effects of
programs on the cpu, memory, interrupts,
swap, I/O, tcp
 The sysstat command sar will collect
information about the above listed items.
 Open source kSar java program will parse the
text file generated by sar and graph
everything.
RTAI lxrt-soft real time
Notice, big drop in amount
of interrupts while lxrt-soft
program is running
No RTAI







Finish testing the I/O hog program and implement it.
Current kSar graph data was obtained from my home
system and not the C107 cluster. The kSar program
was not working for importing a text file, as well as
not working remotely via ssh from home to cluster.
Implement OProfile or VTune for additional profiling
on master and one or more worker nodes.
Obtain sar and kSar data for master and one or more
worker nodes on cluster.
Obtain MPE data while using a cpu hog and an
interrupt hog.
Obtain sar and kSar data while using a cpu hog and an
interrupt hog.
Determine what the interrupt levels mean: i014 etc.
 Perform
system benchmarking
 Write the corresponding paper for this
project.
 Determine the scalability of a real time and
parallel application. There is a little bit of
overhead using high priority and RTAI.










http://oprofile.sourceforge.netprofiling
http://www.bitmover.com/lmbench/
http://www.cyberciti.biz/tips/identifying-linux-bottleneckssar-graphs-with-ksar.html
http://www.cyberciti.biz/tips/linux-resource-utilization-todetect-system-bottlenecks.html
http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html
http://www.howtoforge.com/sysstat_monitoring_centos
http://www.opersys.com/ftp/pub/LTT/Documentation/pa06_yaghmour.pdf
http://www.opersys.com/LTT/documentation.html
http://www.linux-mag.com/cache/7728/1.html
http://www.rtai.org