Performance Testing

The benchmarks directory contains scripts for measuring the performance of arkouda, optionally compared to the (single-node) performance of NumPy.

Argsort

Measure performance of sorting an array of random values.

usage: argsort.py [-h] [-n SIZE] [-t TRIALS] [-d DTYPE] [--numpy]
                  [--correctness-only] [-s SEED]
                  hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of array to argsort

Default: 100000000

-t, --trials

Number of times to run the benchmark

Default: 3

-d, --dtype

Dtype of array (int64, uint64, float64)

Default: “int64”

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator

Gather

Measure the performance of random gather: C = V[I]

usage: gather.py [-h] [-n SIZE] [-i INDEX_SIZE] [-v VALUE_SIZE] [-t TRIALS]
                 [-d DTYPE] [-r] [--numpy] [--correctness-only] [-s SEED]
                 hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of index and gather arrays

Default: 100000000

-i, --index-size

Length of index array (number of gathers to perform)

-v, --value-size

Length of array from which values are gathered

-t, --trials

Number of times to run the benchmark

Default: 6

-d, --dtype

Dtype of value array (int64, float64, bool)

Default: “int64”

-r, --randomize

Use random values instead of ones

Default: False

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator

Reduce

Measure performance of reductions over arrays.

usage: reduce.py [-h] [-n SIZE] [-t TRIALS] [-d DTYPE] [-r] [--numpy]
                 [--correctness-only] [-s SEED]
                 hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of array to reduce

Default: 100000000

-t, --trials

Number of times to run the benchmark

Default: 6

-d, --dtype

Dtype of array (int64, float64)

Default: “int64”

-r, --randomize

Fill array with random values instead of range

Default: False

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator

Scan

Measure the performance of scans (cumulative reductions) over arrays.

usage: scan.py [-h] [-n SIZE] [-t TRIALS] [-d DTYPE] [-r] [--numpy]
               [--correctness-only] [-s SEED]
               hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of array

Default: 100000000

-t, --trials

Number of times to run the benchmark

Default: 6

-d, --dtype

Dtype of array (int64, float64)

Default: “int64”

-r, --randomize

Fill array with random values instead of range

Default: False

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator

Scatter

Measure performance of random scatter: C[I] = V

usage: scatter.py [-h] [-n SIZE] [-i INDEX_SIZE] [-v VALUE_SIZE] [-t TRIALS]
                  [-d DTYPE] [-r] [--numpy] [--correctness-only] [-s SEED]
                  hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of index and scatter arrays

Default: 100000000

-i, --index-size

Length of index array (number of scatters to perform)

-v, --value-size

Length of array from which values are scattered

-t, --trials

Number of times to run the benchmark

Default: 6

-d, --dtype

Dtype of value array (int64, float64, bool)

Default: “int64”

-r, --randomize

Use random values instead of ones

Default: False

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator

Stream

Run the stream benchmark: C = A + alpha*B

usage: stream.py [-h] [-n SIZE] [-t TRIALS] [-d DTYPE] [-r] [-a ALPHA]
                 [--numpy] [--correctness-only] [-s SEED]
                 hostname port

Positional Arguments

hostname

Hostname of arkouda server

port

Port of arkouda server

Named Arguments

-n, --size

Problem size: length of arrays A and B

Default: 100000000

-t, --trials

Number of times to run the benchmark

Default: 6

-d, --dtype

Dtype of arrays (int64, float64)

Default: “float64”

-r, --randomize

Fill arrays with random values instead of ones

Default: False

-a, --alpha

Scalar multiple

Default: 1.0

--numpy

Run the same operation in NumPy to compare performance.

Default: False

--correctness-only

Only check correctness, not performance.

Default: False

-s, --seed

Value to initialize random number generator