The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w -I/accounts/darin/current/blib/arch -I/accounts/darin/current/blib/lib

use PDL;
use PDL::Parallel::MPI;
MPI_Init();
$how_many=18;
$nk= 10;
$rank = get_rank();
$ts=sequence($how_many);
$test_sizes = 2 ** $ts;

$dataset = zeroes($nk,$how_many);

foreach $i (0 .. $nk-1) 
{
	foreach $k (0 .. $how_many -1) 
	{
		$piddle = $rank * ones(  $test_sizes->at($k));
		MPI_Barrier(MPI_COMM_WORLD);
		$start = MPI_Wtime();
		$piddle->move(1=>0);
		$finish = MPI_Wtime() - $start;
		$dataset->slice("$i,$k") .= $finish;
	}
}

$dataset->print_ascii if $rank == 0;
$dataset->move(1=>0);
print "\n" if $rank == 0;
$dataset->print_ascii if $rank == 0;



MPI_Finalize();

sub PDL::print_ascii {
	use strict;
	my $piddle=shift;
	for my $row (0 .. $piddle->getdim(1)-1) {
		for my $column (0 .. $piddle->getdim(0)-1) {
			printf "%f ", $piddle->at($column,$row);
		}
		print "\n";
	}
}