update openmpi linux
This commit is contained in:
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Copyright (c) 2013-2015 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2013-2015 Inria. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
#
|
||||
# Author Emmanuel Jeannot <emmanuel.jeannot@inria.fr>
|
||||
#
|
||||
# This script aggregates the profiles generated by the flush_monitoring function.
|
||||
# The files need to be in in given format: name_<phase_id>_<process_id>
|
||||
# They are then aggregated by phases.
|
||||
# If one needs the profile of all the phases he can concatenate the different files,
|
||||
# or use the output of the monitoring system done at MPI_Finalize
|
||||
# in the example it should be call as:
|
||||
# ./aggregate_profile.pl prof/phase to generate
|
||||
# prof/phase_1.prof
|
||||
# prof/phase_2.prof
|
||||
#
|
||||
# ensure that this script as the executable right: chmod +x ...
|
||||
#
|
||||
|
||||
die "$0 <name of the profile>\n\tProfile files should be of the form \"name_phaseid_processesid.prof\"\n\tFor instance if you saved the monitoring into phase_0.0.prof, phase_0.1.prof, ..., phase_1.0.prof etc you should call: $0 phase\n" if ($#ARGV!=0);
|
||||
|
||||
$name = $ARGV[0];
|
||||
|
||||
@files = glob ($name."*");
|
||||
|
||||
%phaseid = ();
|
||||
|
||||
|
||||
# Detect the different phases
|
||||
foreach $file (@files) {
|
||||
($id)=($file =~ m/$name\_(\d+)\.\d+/);
|
||||
$phaseid{$id} = 1 if ($id);
|
||||
}
|
||||
|
||||
# for each phases aggregate the files
|
||||
foreach $id (sort {$a <=> $b} keys %phaseid) {
|
||||
aggregate($name."_".$id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sub aggregate{
|
||||
$phase = $_[0];
|
||||
|
||||
print "Building $phase.prof\n";
|
||||
|
||||
open OUT,">$phase.prof";
|
||||
|
||||
@files = glob ($phase."*");
|
||||
|
||||
foreach $file ( @files) {
|
||||
open IN,$file;
|
||||
while (<IN>) {
|
||||
print OUT;
|
||||
}
|
||||
close IN;
|
||||
}
|
||||
close OUT;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
orte-dvm
|
||||
@@ -1 +0,0 @@
|
||||
orte-ps
|
||||
@@ -1 +0,0 @@
|
||||
orte-top
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
mpirun
|
||||
@@ -1,125 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
#
|
||||
# Copyright (c) 2013-2015 The University of Tennessee and The University
|
||||
# of Tennessee Research Foundation. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2013-2016 Inria. All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
#
|
||||
# Author Emmanuel Jeannot <emmanuel.jeannot@inria.fr>
|
||||
#
|
||||
# Take a profile file and aggregates all the recorded communicaton into matrices.
|
||||
# It generated a matrices for teh number of messages, (msg),
|
||||
# for the total bytes transmitted (size) and
|
||||
# the average nulber of bytes per messages (avg)
|
||||
#
|
||||
# The output matix is symetric
|
||||
#
|
||||
# If possible it creates file with "internal" tags (collexctive and eta data),
|
||||
# "external" tags (point to point messages) and "all" (every messgaes).
|
||||
#
|
||||
# ensure that this script as the executable right: chmod +x ...
|
||||
#
|
||||
|
||||
|
||||
if($#ARGV < 0){
|
||||
die("Usage: $0 <\".prof\" filename>\n");
|
||||
}else{
|
||||
$filename=$ARGV[0];
|
||||
}
|
||||
|
||||
profile($filename,"I|E|S|R|C","all");
|
||||
if ( profile($filename,"E","external") ){
|
||||
profile($filename,"I","internal");
|
||||
profile($filename,"S|R","osc");
|
||||
profile($filename,"C","coll");
|
||||
}
|
||||
|
||||
sub profile{
|
||||
my $filename= $_[0];
|
||||
my $filter= $_[1];
|
||||
my $suffix= $_[2];
|
||||
my $done = 0;
|
||||
|
||||
$outfile=$filename;
|
||||
$outfile=~s/\.prof$/_size_$suffix\.mat/;
|
||||
|
||||
|
||||
open IN,"<$filename";
|
||||
$n=0;
|
||||
@mat1=();
|
||||
@mat2=();
|
||||
@mat3=();
|
||||
$i=0;
|
||||
while (<IN>) {
|
||||
$i++;
|
||||
if (($f,$p1,$p2,$s,$m)=/^($filter)\s+(\d+)\s+(\d+)\s+(\d+)\D+(\d+)/){
|
||||
$done = 1;
|
||||
$f++;
|
||||
#print "$p1 | $p2 | $s | $m\n";
|
||||
$mat1[$p1][$p2]+=$s;
|
||||
$mat1[$p2][$p1]+=$s;
|
||||
$mat2[$p1][$p2]+=$m;
|
||||
$mat2[$p2][$p1]+=$m;
|
||||
$n=$p1 if ($p1>$n);
|
||||
$n=$p2 if ($p2>$n);
|
||||
}else {
|
||||
# print("file $filename line $i: $_\n");
|
||||
}
|
||||
}
|
||||
close IN;
|
||||
|
||||
#print "$done\n";
|
||||
|
||||
foreach $i (0..$n) {
|
||||
foreach $j (0..$n) {
|
||||
$mat1[$i][$j]+=0;
|
||||
$mat2[$i][$j]+=0;
|
||||
$mat1[$i][$j]/=2;
|
||||
$mat2[$i][$j]/=2;
|
||||
if ($mat2[$i][$j]){
|
||||
$mat3[$i][$j]=$mat1[$i][$j]/$mat2[$i][$j] ;
|
||||
#printf"%f\t%f\t%f\n",$mat1[$i][$j],$mat2[$i][$j],$mat3[$i][$j];
|
||||
}else{
|
||||
$mat3[$i][$j]=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ($done) {
|
||||
print "$filename -> $suffix\n";
|
||||
save_file($outfile,$n,\@mat1);
|
||||
$outfile=~s/_size/_msg/;
|
||||
save_file($outfile,$n,\@mat2);
|
||||
$outfile=~s/_msg/_avg/;
|
||||
save_file($outfile,$n,\@mat3);
|
||||
print"\n";
|
||||
}
|
||||
return $done;
|
||||
}
|
||||
|
||||
|
||||
sub save_file{
|
||||
my $outfile=$_[0];
|
||||
my $n=$_[1];
|
||||
my @mat=@{$_[2]};
|
||||
$s=$n+1;
|
||||
print "$outfile\n";
|
||||
open OUT,">$outfile";
|
||||
foreach $i (0..$n) {
|
||||
foreach $j (0..$n) {
|
||||
printf OUT "%.0f ",$mat[$i][$j];
|
||||
}
|
||||
print OUT "\n";
|
||||
}
|
||||
# print"\n------------\n\n";
|
||||
close OUT;
|
||||
}
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
opal_wrapper
|
||||
@@ -1 +0,0 @@
|
||||
mpirun
|
||||
Reference in New Issue
Block a user