MicroLauncher_Chapter_2_Installation - LittleWhite-tb/microperf GitHub Wiki
This chapter is part of the MicroLauncher Manual.
The previous chapter is Chapter 1: General Information.
The next chapter is Chapter 3: General Usage.
The download and installation of the program is rather simple:
- Download the source via Git
- The Google Code Source contains the current development state of the tool
First, go in the directory:
$:~/Memory$ cd microlaunch/
$:~/Memory/microlaunch$ ls
allocator benchmark_exec.c defines.h dflush.h figures Log.h obj pipes.h Signal.h timer
bench_descriptor.c benchmark_exec.h Description.c doc LinkList.c main.c Options.c power stride.c toolkit.c
bench_descriptor.h benchmark.h Description.h Doxyfile LinkList.h main.h Options.h rdtsc.h stride.h toolkit.h
benchmark.c config.cfg dflush.c example Log.c Makefile pipes.c Signal.c stride.s utils
Second, use make:
$:~/Memory/microlaunch$ make
gcc -c bench_descriptor.c -o obj/bench_descriptor.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c benchmark.c -o obj/benchmark.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c benchmark_exec.c -o obj/benchmark_exec.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
benchmark_exec.c: In function ‘Benchmark_Exec’:
benchmark_exec.c:226:14: warning: unused variable ‘diff_median’
benchmark_exec.c:225:14: warning: unused variable ‘time_median’
benchmark_exec.c:224:24: warning: unused variable ‘overhead_median’
gcc -c Description.c -o obj/Description.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c dflush.c -o obj/dflush.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c LinkList.c -o obj/LinkList.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c Log.c -o obj/Log.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c main.c -o obj/main.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c Options.c -o obj/Options.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c pipes.c -o obj/pipes.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c Signal.c -o obj/Signal.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c stride.c -o obj/stride.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -c toolkit.c -o obj/toolkit.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE
gcc -o microlaunch obj/bench_descriptor.o obj/benchmark.o obj/benchmark_exec.o obj/Description.o obj/dflush.o obj/LinkList.o obj/Log.o obj/main.o obj/Options.o obj/pipes.o obj/Signal.o obj/stride.o obj/toolkit.o -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE -ldl -rdynamic
gcc timer/timer.c -o timer/timer.so -fPIC -shared -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE -I.
gcc power/timer.c -o power/timer.so -fPIC -shared -O3 -Wall -Wextra -g -DX86 -DELTDOUBLE -I. -D__PL_LINUX__ power/esrv/esrv_lib.so
make -C allocator/bigarray/ all
make[1]: Entering directory `/home/jcbeyler/Memory/microlaunch/allocator/bigarray'
gcc bigarray.c -DELTDOUBLE -DX86 -o bigarray.so -O3 -fPIC -shared -Wall -Wextra
make[1]: Leaving directory `/home/jcbeyler/Memory/microlaunch/allocator/bigarray'
make -C allocator/dedicated_arrays/ all
make[1]: Entering directory `/home/jcbeyler/Memory/microlaunch/allocator/dedicated_arrays'
gcc sa_malloc.c -o sa_malloc.o -O3 -shared -fPIC -c -Wall -Wextra
gcc dedicated_arrays.c sa_malloc.o -o dedicated_arrays.so -O3 -shared -fPIC -Wall -Wextra
make[1]: Leaving directory `/home/jcbeyler/Memory/microlaunch/allocator/dedicated_arrays'
Now the program can run. Without any command-line options, the software prints out the command-line option possibilities.
*************************************************************************************************
* |\ /| ' ____ ____ ____ ____ ____ ____ ____ *
* | \ / | | | |____| | | | |____| | | | \ | | |____| |____ |____| *
* | ' | | |____ | \ |____| |____ | | |____| | \ | |____ | | |____ | \ *
* *
*************************************************************************************************
Usage of options for. /microlaunch:
KERNEL MODE
*************
- Global Arguments
--kernelname <value>: Change the kernel library to be used
--kernelfunction <value>: Change the kernel function to be used
--startvector <value>: Sets the vector size (in elements)
- Optional Arguments
--endvector <value>: Sets the end vector size (in elements)
--stepvector <value>: Sets the step between each vector size computation
--repetition <value>: Change the number of repetition to execute
--metarepetition <value>: Change the number of meta-repetition to execute
--executerepetition <value>: Change the number of Microlauncher executions to be done
--maxalloc <value>: Change the maximum allocation (in octets)
--cpupin <value>: Change the processor we wish to be pinned on
--basename <value>: Add a meaningfull name for the output files.
--maxstride <value>: Change value of the maximum stride
--alloclib <path>: Select the allocation library
--evalstart <value>: select evaluation start function
--evalstop <value>: select evaluation stop function
--evalinit <value>: select evaluation init function
--evalclose <value>: select evaluation close function
--evallib <value>: select evaluation library
--nbvector <value[1,8]>: Change the maximum of allocated vectors
--no-output: Desable the output csv file creation
--vectsurveyor "{(start,stop,step); . . .}": Change the alignment of allocated vectors
--vectorspacing <value>: change the space (in octet) between two consecutive allocated vector
--omppath <value>: activates the OpenMP mode and sets the OMP library path (typically /usr/lib)
--output-dir <value>: Change the directory where output files will be stored.
--output-same-dir: Output files will be stored in the current directory.
--resume: Resumes a cancelled run
--resumeid: Changes the integer suffix for resume data files
- Multi-process Arguments
--kernelnames <value>: file containing the path of the benchmarks
--nbprocess <value>: number of benchmark process you want to launch
- Untested Arguments
--config <value>: Select the configuration file
--sizedummy <value>: Change the size of the dummy array
--info <value>: Change the information display value
--logverbosity <value>: Change the log verbosity
STAND-ALONE EXECUTION MODE
****************************
- Global Arguments
--execname <value>: Change the executable file to be used
- Optional Arguments
--execargs <value>: Add your executable arguments (must be between quotes)
--repetition <value>: Change the number of repetition to execute
--metarepetition <value>: Change the number of meta-repetition to execute
--executerepetition <value>: Change the number of Microlauncher executions to be done
- Multi-process Arguments
--nbprocess <value>: number of benchmark process you want to launch
As a second example, launch a test program in the ''example'' folder. The name of the file is example0.c, it contains a single function named scale, which traverses an array.
To study the performance of the program, type the following command:
$./microlaunch --kernelname example/example0.c --kernelfunction entryPoint
MicroLauncher outputs information about the run, preparing the experiment, and outputs additional information. The user should obtain the following output in order to test MicroLauncher's installation. [MicroLauncher_Chapter_3: General Usage|Chapter 3] presents more information about the output.
*************************************************************************************************
* |\ /| ' ____ ____ ____ ____ ____ ____ ____ *
* | \ / | | | |____| | | | |____| | | | \ | | |____| |____ |____| *
* | ' | | |____ | \ |____| |____ | | |____| | \ | |____ | | |____ | \ *
* *
*************************************************************************************************
#15958: Warning: not able to mask the interruptions
#15958: Compiling in Normal mode:
gcc -fPIC -O3 -Wall -Wextra -shared -DX86 -DELTFLOAT -Wl,-soname,/tmp/microFVicWg -o /tmp/microFVicWg example/example0.c
#15968: ===================================
#15968: LAUNCHING BENCHMARK (KERNEL MODE)
#15968: ===================================
#15968: Launching Configuration:
#15968: - Meta-repetitions: 10
#15968: - Repetitions: 20
- Benchmark computation process: 0% (2500000/2500000)#15968:
Going to read dummyArray with size: 12
- Benchmark computation process: 100% (2500000/2500000)
#15968: Child process exiting now . . .
#15958: Father process exiting now . . .
The example execution does not have super-user privileges; therefore, MicroLauncher warns it cannot mask system interruptions. After outputs explaining the tools' execution flow, the system compiles the example.
#15958: Compiling in Normal mode:
gcc -fPIC -O3 -Wall -Wextra -shared -DX86 -DELTFLOAT -Wl,-soname,/tmp/microFVicWg -o /tmp/microFVicWg example/example0.c
MicroLauncher handles the allocation of arrays for kernels. By default, it allocates a single array with 2,500,000 number of elements.
This chapter is part of the MicroLauncher Manual.
The previous chapter is Chapter 1: General Information.
The next chapter is Chapter 3: General Usage.