GSvit documentation

open source FDTD solver with GPU support

User Tools

Site Tools


start:tests

Automated tests

If GSvit is started with “test” as an argument, followed by test number, it can run an automated test. For key tests even a precomputed value is installed, so result can be compared to it automatically. If a GPU is present in the computer and GSvit is translated with GPU support, it is recognized, reported and used for comparison to CPU.

Tests can be useful namely when installing GSvit on a new system or in doubts whether a concrete algorithm does not do what is expected.

Automated tests available are as follows (run gsvit with no arguments for a list of them):

  • ./gsvit test 0 checks available GPUs only, printing their main characteristics.
  • ./gsvit test 1 makes single test on CPU and all GPUs (if there are any)
  • ./gsvit test 2 tests key algorithms performance, running approximately ten different tests for 100x100x100 voxels, 100 steps, which takes about ten minutes.
  • ./gsvit test 3 tests key algorithms performance, running approximately ten different tests for 200x200x200 voxels, 300 steps, which can take tens of minutes, however it is more precise regarding peak GSvit performance estimation.
  • ./gsvit test 12 compares GPU/CPU time scaling up to 200x200x200 voxels
  • ./gsvit test 13 compares GPU/CPU time scaling up to 300x300x300 voxels
  • ./gsvit test 14 compares GPU/CPU time scaling up to 400x400x400 voxels
  • ./gsvit test 15 compares GPU/CPU time scaling up to 500x500x500 voxels
  • ./gsvit test 20 compares GPU time scaling up to 400x400x400 voxels
  • ./gsvit test 3N tests multiple threads speedup on N00xN00xN00 voxels (i.e. 100 to 900 for 31 to 39)
  • ./gsvit test AAABCDEF is a general test format. The eigth digit number AAABCDEF means:
    • AAA - cube size in pixels (i.e. if XXX = 100, cube size is 100 x 100 x 100)
    • B - boundary condition: 0 - none, 1 - PEC, 2 - Liao, 3 - CPML
    • C - material (small piece of it in the center of computational space): 0 - none, 1 - electric only, 2 - magnetic only, 3 - tabulated electric, 4 - tabulated magnetic, 5 - pec, 6 - Drude, 7 - CP
    • D - check material and appl optimum mode for saving some memory: 0 - no, 1 - yes
    • E - run Near-to Far Field transformation for a single point: 0 - no, 1 - yes
    • F - source: 0 - point source, 1 - total/scattered field, 2 - scattered field

The “AAABCDEF” naming is used also to store the precomputed data that are compared with tests results. The precomputed data for comparison are typically single near field or far field point time dependence.

There are two more tests designed for benchmarking HPC systems:

  • ./gsvit benchmark N tests N threads computational time on 900x900x900 voxels
  • ./gsvit bigbenchmark N tests N threads computational time on 4000x4000x4000 voxels

One more special command line argument is implemented. Parameter “–killer filename” defines special condition for stopping calculation if the specified file in working directory exists and its content (ASCII) is a number 1. This specific workaround could be useful only very rarely, at present its main use is to prevent wrong process termination in Windows version of XSvit.

start/tests.txt · Last modified: 2019/01/17 09:48 by dnezval