Skip to content

A runtime application which executes test cases in parallel on the GPU threads.

License

Notifications You must be signed in to change notification settings

wyaneva/partecl-runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParTeCL-Runtime

A runtime application which executes test cases in parallel on the GPU threads.

It uses the OpenCL code generated by ParTeCL-CodeGen (see https://github.com/wyaneva/ParTeCL-CodeGen). ParTeCL-CodeGen needs to be used before ParTeCL-Runtime.

I. Folder structure:

  • build contains the Makefile
  • kernel-gen contains the OpenCL and C code generated by ParTeCL-CodeGen (https://github.com/wyaneva/ParTeCL-CodeGen)
  • run-on-cpu contains a runtime which performs test execution on the CPU to allow performance comparison
  • scripts contains some useful bash scripts
  • source contains the main source code for the program
  • utils contains utility source code for the program

II. How to build:

  1. Choose the C program, whose tests you want to execute on the GPU.
  2. Use ParTeCL-CodeGen (https://github.com/wyaneva/ParTeCL-CodeGen) to generate an OpenCL kernel for the chosen program. The code generated by ParTeCL-CodeGen needs to go in directory 'kernel-gen'.
  3. Go inside 'build' and run 'make gpu-test'. This should produce an executable called 'gpu-test'.

III. How to run:

  1. Copy the tested program's test cases to 'kernel-gen'. They should be in a CSV file, delimited by space, where each row is a test case and each column is the value of an input. The file should be called 'tests.txt'. An example C program and its test file can be found in the repository for ParTeCL-CodeGen (https://github.com/wyaneva/ParTeCL-CodeGen).

  2. Run:

./gpu-test [number of tests]

Compulsory arguments:

  • [number of tests] how many tests to run

Optional arguments:

  • results Y/N Switches printing of the testing results on/off; default Y
  • time Y/N Switches printing of timing information on/off; default N
  • runs Number of executions, usually used for performance gathering; default 1

Example:

./gpu-test 100 -results Y -time Y

IV. Related projects:

  1. clClibc (https://github.com/wyaneva/clClibc) An OpenCL implementation for the C standard library. When using ParTeCL to test C programs, which use standard library functions, put clClibc in your home directory, so it can be found and built by the OpenCL compiler.

V. Related publications

  1. Compiler-Assisted Test Acceleration on GPUs for Embedded Software, Vanya Yaneva, Ajitha Rajan, and Christophe Dubach, In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017), July 2017
  2. ParTeCL - Parallel Testing Using OpenCL, Vanya Yaneva, Ajitha Rajan, and Christophe Dubach, In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017), July 2017

About

A runtime application which executes test cases in parallel on the GPU threads.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published