
A = [
   4096       4             27
   4096       8             25
   4096      16             26
   4096      32             27
   4096      64             27
   4096     128             26
   4096     256             28
   4096     512             27
   4096    1024             28
   4096    2048             31
   8192       4             26
   8192       8             25
   8192      16             26
   8192      32             26
   8192      64             26
   8192     128             27
   8192     256             26
   8192     512             26
   8192    1024             26
   8192    2048             28
   8192    4096             31
  16384       4             27
  16384       8             25
  16384      16             26
  16384      32             26
  16384      64             25
  16384     128             25
  16384     256             25
  16384     512             27
  16384    1024             26
  16384    2048             27
  16384    4096             27
  16384    8192             29
  32768       4             25
  32768       8             25
  32768      16             25
  32768      32             26
  32768      64             25
  32768     128             25
  32768     256             24
  32768     512             26
  32768    1024             26
  32768    2048             26
  32768    4096             27
  32768    8192             28
  32768   16384             31
  65536       4             25
  65536       8             25
  65536      16             24
  65536      32             26
  65536      64             25
  65536     128             25
  65536     256             25
  65536     512             27
  65536    1024             25
  65536    2048             24
  65536    4096             25
  65536    8192             27
  65536   16384             27
  65536   32768             29
 131072       4             26
 131072       8             26
 131072      16             26
 131072      32             25
 131072      64             27
 131072     128             26
 131072     256             27
 131072     512             29
 131072    1024             32
 131072    2048             25
 131072    4096             25
 131072    8192             25
 131072   16384             27
 131072   32768             27
 131072   65536             29
 262144       4             27
 262144       8             29
 262144      16             36
 262144      32             47
 262144      64             70
 262144     128            216
 262144     256            443
 262144     512            443
 262144    1024            437
 262144    2048            432
 262144    4096            443
 262144    8192            427
 262144   16384            412
 262144   32768            374
 262144   65536             27
 262144  131072             31
 524288       4             28
 524288       8             32
 524288      16             35
 524288      32             47
 524288      64             70
 524288     128            216
 524288     256            450
 524288     512            446
 524288    1024            446
 524288    2048            443
 524288    4096            446
 524288    8192            435
 524288   16384            427
 524288   32768            412
 524288   65536            374
 524288  131072             27
 524288  262144             29
1048576       4             30
1048576       8             32
1048576      16             36
1048576      32             47
1048576      64             70
1048576     128            216
1048576     256            450
1048576     512            443
1048576    1024            446
1048576    2048            446
1048576    4096            446
1048576    8192            446
1048576   16384            439
1048576   32768            431
1048576   65536            412
1048576  131072            374
1048576  262144             27
1048576  524288             29
2097152       4             29
2097152       8             31
2097152      16             37
2097152      32             48
2097152      64             72
2097152     128            219
2097152     256            448
2097152     512            454
2097152    1024            450
2097152    2048            450
2097152    4096            450
2097152    8192            450
2097152   16384            446
2097152   32768            441
2097152   65536            429
2097152  131072            410
2097152  262144            374
2097152  524288             59
2097152 1048576             29
4194304       4             29
4194304       8             31
4194304      16             36
4194304      32             48
4194304      64             72
4194304     128            219
4194304     256            453
4194304     512            452
4194304    1024            453
4194304    2048            451
4194304    4096            452
4194304    8192            448
4194304   16384            448
4194304   32768            448
4194304   65536            435
4194304  131072            426
4194304  262144            411
4194304  524288            371
4194304 1048576             58
4194304 2097152             30
8388608       4             29
8388608       8             31
8388608      16             36
8388608      32             48
8388608      64             72
8388608     128            219
8388608     256            453
8388608     512            454
8388608    1024            455
8388608    2048            456
8388608    4096            456
8388608    8192            458
8388608   16384            456
8388608   32768            454
8388608   65536            444
8388608  131072            439
8388608  262144            430
8388608  524288            411
8388608 1048576            373
8388608 2097152             63
8388608 4194304             29
16777216       4             29
16777216       8             31
16777216      16             37
16777216      32             48
16777216      64             73
16777216     128            219
16777216     256            453
16777216     512            456
16777216    1024            464
16777216    2048            478
16777216    4096            513
16777216    8192            577
16777216   16384            705
16777216   32768            703
16777216   65536            702
16777216  131072            698
16777216  262144            692
16777216  524288            680
16777216 1048576            653
16777216 2097152            600
16777216 4194304             69
16777216 8388608             30
33554432       4             29
33554432       8             31
33554432      16             37
33554432      32             48
33554432      64             73
33554432     128            219
33554432     256            452
33554432     512            456
33554432    1024            464
33554432    2048            481
33554432    4096            513
33554432    8192            577
33554432   16384            706
33554432   32768            704
33554432   65536            704
33554432  131072            702
33554432  262144            699
33554432  524288            693
33554432 1048576            680
33554432 2097152            651
33554432 4194304            601
33554432 8388608             61
33554432 16777216             29
67108864       4             29
67108864       8             31
67108864      16             37
67108864      32             48
67108864      64             73
67108864     128            219
67108864     256            452
67108864     512            456
67108864    1024            464
67108864    2048            480
67108864    4096            513
67108864    8192            578
67108864   16384            706
67108864   32768            705
67108864   65536            705
67108864  131072            704
67108864  262144            702
67108864  524288            700
67108864 1048576            694
67108864 2097152            681
67108864 4194304            654
67108864 8388608            601
67108864 16777216             63
67108864 33554432             29
];

[m,n] = size(A);

i = 1;
j = 1;
while (i < m)
   k = A(i,1);
   t = A(i,2:3);
   i = i+1;
   while((i <= m) & (A(i,1) == k))
     t = [t; A(i,2:3)];
     i = i+1;
   end
   a{j} = t;
   j = j + 1;
end;

hold off;

j = j - 1;
while (j > 0)
  b{j} = log2(a{j}(:,1));
  c{j} = a{j}(:,2);
  j = j - 1;
end;

h = plot(b{1},c{1},b{2},c{2},b{3},c{3},b{4},c{4},b{5},c{5},b{6},c{6},b{7},c{7},b{8},c{8},b{9},c{9},b{10},c{10},b{11},c{11},b{12},c{12},b{13},c{13},b{14},c{14},b{15},c{15});
legend(h,'4k','8k','16k','32k','64k','128k','256k','512k','1M','2M','4M','8M','16M','32M','64M');
set(gca,'xtick',[2 4 6 8 10 12 14 16 18 20 22 24 26]);
set(gca,'XTickLabel','4|16|64|256|1k|4k|16k|64k|256k|1M|4M|16M|64M');
xlabel('Stride');
ylabel('nanoseconds');
title('IBM SP-2 Cache Test');
