# [Accelerate random number generation with OpenRNG and Performix](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/)
- [Set up your environment](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/how-to-1/)
- [Run the baseline data-processing example](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/how-to-2/)
- [Identify code hotspots with Arm Performix](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/how-to-3/)
- [Accelerate distribution generation with OpenRNG](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/how-to-4/)
- [Measure performance improvements with a microbenchmark](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/how-to-5/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/openrng-with-performix/_next-steps/)

## About this Learning Path

| Skill level:       | Introductory       |
|--------------------|--------------------|
| Reading time:      | 45 min             |
| Last updated:      | 31 Jul 2026        |

| Author:            | Kieran Hejmadi, Arm [GitHub](https://github.com/kieranhejmadi01) [LinkedIn](https://linkedin.com/in/kieran-hejmadi-88920815b) |
|--------------------|----------------------------------------------------------|
| Arm IP:            | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags:              | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture), [Linux](https://learn.arm.com/tag/linux), [CMake](https://learn.arm.com/tag/cmake), [Arm Performix](https://learn.arm.com/tag/arm-performix), [OpenRNG](https://learn.arm.com/tag/openrng), [Arm Performance Libraries](https://learn.arm.com/tag/arm-performance-libraries) |

### Who is this for?
This is an introductory topic for C++ developers who want to profile a data-processing workload on Arm Linux, identify performance bottlenecks with Arm Performix, and accelerate random number generation using OpenRNG and Arm Performance Libraries.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Build and run a baseline C++ data-processing workload on Arm Linux
- Use Arm Performix Code Hotspots to identify the highest-impact optimization target
- Accelerate random number generation by integrating OpenRNG and Arm Performance Libraries
- Measure performance improvements using a microbenchmark across multiple data sizes

### Prerequisites
Before starting, you will need the following:
- An Arm Linux (aarch64) server, such as an AWS Graviton3 instance
- Basic understanding of C++ and CMake
