XenoJetBench: An open source hard-real-time multiprocessor benchmark
Clone or download
Arsalan Shahid
Arsalan Shahid Adding XenoJetBench Files
Latest commit b910756 Oct 26, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE.txt Adding XenoJetBench Files Oct 26, 2017
Makefile Adding XenoJetBench Files Oct 26, 2017
README.md Update README: XenoJetBench Oct 26, 2017
XenoJetBench.c Adding XenoJetBench Files Oct 26, 2017
XenoJetBench.h Adding XenoJetBench Files Oct 26, 2017
input.txt Adding XenoJetBench Files Oct 26, 2017
run.sh Adding XenoJetBench Files Oct 26, 2017

README.md

XenoJetBench: An open source hard-real-time multiprocessor benchmark


XenoJetBench Benchmark Version 2.0 (beta)

(c) Copyright 2016 -- Arsalan Shahid & Muhammad Yasir Qadri
(arsalan.shahid @ ucdconnect.ie, yasirqadri @ acm.org)

BACKGROUND

Information on JetBench and XenoJetBench Benchmark, can be found
in the following publications:

M. Y. Qadri, D. Matichard, and K. D. M. Maier, "JetBench: An
Open Source Real-time Multiprocessor Benchmark," in ARCS 2010
Architecture of Computing Systems, Hannover, Germany, 2010.

Shahid, A., Qadri, M. Y., Nawaz, N., & Ahmed, J. (2016, August).
XenoJetBench: An open source hard-real-time multiprocessor
benchmark. In Intelligent and Advanced Systems (ICIAS), 2016
6th International Conference on (pp. 1-6). IEEE.

INSTALLATION

This benchmark is completely designed to run on linux. Because of
the bad clock precision, time results will not be good on Windows
system. XenoJetBench requires Installation of Xenomai API on linux.

How to compile XenoJetBench?

To compile XenoJetBench benchmark, you need the OpenMp library <omp.h>.
It is supported by the gcc compiler since the version 4.2.
Moreover as previously mentioned you would need Xenomai patched
with linux kernel as it is hard-real-time programming framework.
To compile it first install 'make' package on your linux version using:

shell$ sudo apt-get install make
shell$ make

Following sample shows successful compilation:

================================================ 
gcc -Wall -g -fopenmp -I/usr/include/xenomai -D_GNU_SOURCE -D_REENTRANT 
-D__XENO__ XenoJetBench.c -Xlinker -rpath -Xlinker /usr/lib -lnative 
-L/usr/lib -lxenomai -lpthread -lrt -o XenoJetBench 
Benchmark compilation Successful 
Use [ make clean ] to clear compilation 
================================================ 

Make sure the header file is in the same folder before doing it. 
The header file contain all variables and also some things you 
can change like the number of thread and calculation precision.
Once you have changed it, compile it to run jetsim. 
For all other compiler, read the specifications to include the 
OpenMp library. 

How to run XenoJetBench?

XenoJetBench is a jet engine simulator. It contains 3 types of engines: 
	1-Turbojet 
	2-Turbojet with afterburner 
	3-Turbofan 

shell$ source run.sh

Sample Output

The default engine is set to be 1 (Turbojet) while running XenoJetBench. 
You can change it from 'run.sh' file. Below is a sample result file that 
    will be generated while benchmark execution. 

==============================================

XenoJetBench: An Open Source Hard-Real-Time Multiprocessor Benchmark

engine 1 : Turbojet is selected

==> Starting JetBench Execution

T,ExecTime, Spd| Alt | Thr| Mach|Press| Temp| Fnet|Fgros|RamDr|FlFlo|TSFC|Airfl|Weight|Fn/W
0,0.019031, 0| 0|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
31.7% used for point 1
0,0.018389, 100| 0|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
30.6% used for point 2
0,0.017046, 200| 1000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.4% used for point 3
0,0.017036, 300| 2000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.4% used for point 4
0,0.017212, 300| 3000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.7% used for point 5
0,0.017210, 300| 4000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.7% used for point 6
0,0.016368, 300| 5000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 7
0,0.016367, 300| 6000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 8
0,0.016284, 300| 7000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.1% used for point 9
0,0.016285, 300| 8000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.1% used for point 10
0,0.016615, 300| 9000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.7% used for point 11
0,0.016617, 350|10000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.7% used for point 12
0,0.019485, 350|15000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
32.5% used for point 13
0,0.019492, 400|20000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
32.5% used for point 14
0,0.017139, 450|25000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.6% used for point 15
0,0.017139, 500|30000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.6% used for point 16
0,0.016636, 600|30000|100.0|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.7% used for point 17
0,0.016635, 600|30000| 66.7|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.7% used for point 18
0,0.016278, 600|25000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.1% used for point 19
0,0.016278, 600|20000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.1% used for point 20
0,0.016378, 600|15000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 21
0,0.016378, 500|15000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 22
0,0.016397, 400|15000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 23
0,0.016399, 400|10000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.3% used for point 24
0,0.018349, 300|10000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
30.6% used for point 25
0,0.017076, 285| 9000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.5% used for point 26
0,0.017075, 270| 8000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
28.5% used for point 27
0,0.016441, 255| 7000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.4% used for point 28
0,0.016440, 240| 6000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.4% used for point 29
0,0.016334, 225| 5000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.2% used for point 30
0,0.016334, 210| 4000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.2% used for point 31
0,0.016308, 195| 3000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.2% used for point 32
0,0.016308, 180| 2000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.2% used for point 33
0,0.016428, 165| 1000| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.4% used for point 34
0,0.016428, 150| 0| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
27.4% used for point 35
0,0.017936, 150| 0| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
29.9% used for point 36

==> Ending XenoJetBench Execution

0,0.017935, 150| 0| 55.6|0.000|14.69| 59.0| 6825| 6825| 0| 5689|0.83| 72.7|493.90|13.82
29.9% used for point 37

==> Ending XenoJetBench Execution

XenoJetBench Successfully Terminated
-------------------------------------

==> Results
Total execution time is : 0.314242 with 0 missed deadline
Which represents 28.3% of
Real time used : 1.050000
Number of threads : 2
Number of points : 37

XenoJetBench Start time : 1461498450.430740 secs<br/>
XenoJetBench End time : 1461498450.766760 secs<br/>
Total Benchmark time : 0.336020 secs<br/>

Press ctrl+C to EXIT XenoJetBench

========================================================

Make sure the folder contains the file "input.txt". If it is missing
you will have a segmentation fault. This file contains profile
caracteristics in this order:
Speed Altitude Throtle Deadline_time
0<Speed<1500 mph
0<Altitude<50000 ft
45<Throtle<90 \B0 (angle)
time>0 sec

License


The programs in this project are free software; you can redistribute
it and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more
details. You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

NOTE


This software depends on other packages that may be licensed under different open source licenses.