Difference between revisions of "NAS-IS Benchmark"

From Mesham
Jump to navigationJump to search
(Performance Results)
m (14 revisions imported)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
<metadesc>Mesham is a type oriented programming language allowing the writing of high performance parallel codes which are efficient yet simple to write and maintain</metadesc>
 
== Overview ==
 
== Overview ==
  
Line 11: Line 12:
 
Performance tests were done using a super computer cluster, testing the Mesham code against existing NASA C-MPI parallel code, both of which have been tuned for performance.
 
Performance tests were done using a super computer cluster, testing the Mesham code against existing NASA C-MPI parallel code, both of which have been tuned for performance.
  
[[Image:classc.jpg|600px|right|NASA's Parallel Benchmark IS class C]]
+
[[Image:classc.jpg|400px|right|NASA's Parallel Benchmark IS class C]]
[[Image:classb.jpg|600px|left|NASA's Parallel Benchmark IS class B]]
+
[[Image:classb.jpg|400px|left|NASA's Parallel Benchmark IS class B]]
  
[[Image:total.jpg|600px|left|NASA's Parallel Benchmark IS Total Million Operations per Second]]
+
[[Image:total.jpg|400px|left|NASA's Parallel Benchmark IS Total Million Operations per Second]]
[[Image:process.jpg|600px|right|NASA's Parallel Benchmark IS Million Operations per Second per Process]]
+
[[Image:process.jpg|400px|right|NASA's Parallel Benchmark IS Million Operations per Second per Process]]
  
 
<br style="clear: both" />
 
<br style="clear: both" />
Line 23: Line 24:
 
The source code is more extensive than other examples, with combination files for each class of experiment. It is therefore not included on this page but you can download it.
 
The source code is more extensive than other examples, with combination files for each class of experiment. It is therefore not included on this page but you can download it.
  
== Notes ==
+
== Download ==
  
Be aware, this version of the code requires at least version 0.5 of Mesham and version 0.2 of the runtime library. The benchmark will not work with the version 0.41(b) release which is also on the website.
+
You can download the entire code package for the current version of the compiler [http://www.mesham.com/downloads/npb.zip here] and for the older 0.5 version [http://www.mesham.com/downloads/npb.tar.gz here]
  
== Download ==
+
 
 +
[[Category:Example Codes]]

Latest revision as of 15:44, 15 April 2019

Overview

NASA's Parallel Benchmarks (NPBs) are a common, convenient way of evaluating performance of different classes of machine. By using the official NASA implementation it is possible to evaluate Mesham against that of existing languages. To date the evaluation has been done against NASA's C-MPI code, which is the most common, and arguable most efficient, language choice in parallel computing.

There are numerous benchmarks in the NPB suite, to date we have implemented benchmark IS (Integer Sort), which will sort numbers, in parallel, using a modified version of the bucket sort algorithm. This benchmark has five classes associated with it - class S with 65,000 numbers, class W with 1,000,000 numbers, class A with 8,000,000 numbers, class B with 33,000,000 numbers and lastly class C with 340,000,000 numbers. We have performed evaluation using class B and C, which involves sorting the greatest amount of numbers and hence the largest challenge, although all classes are supported by the benchmark code.

The benchmark has been tuned for performance, this does mean that some of the more low level primitive communication types have been used and hence is not as easily readable as many of the other examples. Having said that, it has not taken long to write and is easy modifiable if required.

Performance Results

Performance tests were done using a super computer cluster, testing the Mesham code against existing NASA C-MPI parallel code, both of which have been tuned for performance.

NASA's Parallel Benchmark IS class C
NASA's Parallel Benchmark IS class B
NASA's Parallel Benchmark IS Total Million Operations per Second
NASA's Parallel Benchmark IS Million Operations per Second per Process


Source Code

The source code is more extensive than other examples, with combination files for each class of experiment. It is therefore not included on this page but you can download it.

Download

You can download the entire code package for the current version of the compiler here and for the older 0.5 version here