# Benchmarks

Below are results from Codon's benchmark suite, which compares Python, PyPy, C++ and Codon on a range of tasks and applications. Benchmarks are run on the following setups:

##### Apple M1 Max

- 2021 16-inch MacBook Pro, Apple M1 Max, 64GB RAM, macOS Monterey 12.5.1
- Python: 3.10.8
- PyPy: 7.3.9 nightly build 2022-11-02, 106335-024a5669d75d
- Clang: Apple clang version 13.1.6
- Codon: 0.15.0, commit
`5480050b0ae3fb39b30e3a71df260ce5e91e5064`

##### Intel® Xeon® Gold

- CentOS Linux 7 (Core), 64 cores, Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz, 754 GB RAM
- GPU: NVIDIA(R) Tesla V100
- Python: 3.8.2
- PyPy: 7.3.9
- Clang: 13.0.1
- Codon: 0.15.0, commit
`5480050b0ae3fb39b30e3a71df260ce5e91e5064`

### Benchmark: `float`

`pyperformance`

's `float`

benchmark — performs a series of 3-dimensional vector operations and normalizations.
### Benchmark: `nbody`

`pyperformance`

's `nbody`

benchmark — simulates the movement of several celestial objects.
### Benchmark: `spectral_norm`

`pyperformance`

's `spectral_norm`

benchmark — computes the largest singular value of a particular infinite matrix.
### Benchmark: `set_partition`

Computes all partitions of a set that fit certain conditions.
### Benchmark: `primes`

Counts prime numbers below a given threshold. **Codon version is multi-threaded.**

### Benchmark: `binary_trees`

Hans Boehm's binary-trees benchmark —
creates and traverses a number of binary trees.
### Benchmark: `fannkuch`

`pyperformance`

's `fannkuch`

benchmark — performs, for each permutation of a list, a number of element reversals until a certain condition is
met, and computes the maximum number of reversals needed across all permutations. **Codon version is multi-threaded.**

### Benchmark: `word_count`

Counts occurrences of words in a file using a dictionary.
### Benchmark: `float`

`pyperformance`

's `float`

benchmark — performs a series of 3-dimensional vector operations and normalizations.
### Benchmark: `nbody`

`pyperformance`

's `nbody`

benchmark — simulates the movement of several celestial objects.
### Benchmark: `spectral_norm`

`pyperformance`

's `spectral_norm`

benchmark — computes the largest singular value of a particular infinite matrix.
### Benchmark: `set_partition`

Computes all partitions of a set that fit certain conditions.
### Benchmark: `primes`

Counts prime numbers below a given threshold. **Codon version is multi-threaded.**

### Benchmark: `binary_trees`

Hans Boehm's binary-trees benchmark —
creates and traverses a number of binary trees.
### Benchmark: `fannkuch`

`pyperformance`

's `fannkuch`

benchmark — performs, for each permutation of a list, a number of element reversals until a certain condition is
met, and computes the maximum number of reversals needed across all permutations. **Codon version is multi-threaded.**