This is a condensed guide to get you up and running quickly. For detailed information, see README.md.
Before running ParaCodex, ensure you have:
- NVIDIA GPU with CUDA support
- Node.js 22+ and npm 9+ installed
- Codex CLI installed (
npm install -g @openai/codex) - NVIDIA HPC SDK 25.7+ installed (
nvc++compiler) - NVIDIA Nsight Systems 2025.3+ installed (
nsysprofiler) - Python 3.8+ installed
- OpenAI API key
git clone https://github.com/Scientific-Computing-Lab/ParaCodex.git
cd ParaCodex./verify_environment.shIf you see ❌ errors, you can auto-install missing dependencies:
# Auto-install NVIDIA HPC SDK (if missing)
sudo ./install_nvidia_hpc_sdk.sh
# Note: Nsight Systems (nsys) is bundled with HPC SDK - no separate install needed!
# If nsys is not found after HPC SDK installation, ensure HPC SDK is in your PATH.# Install Codex CLI
npm install -g @openai/codex
# Verify
codex --versionpip install -r requirements.txtOption 1: Login with OpenAI Pro Account (Recommended)
# Interactive login (opens browser)
codex login
# Or login with API key
echo $OPENAI_API_KEY | codex login --with-api-key
# Verify login
codex login statusOption 2: Use API Key Environment Variable
export OPENAI_API_KEY="your-api-key-here"# Check Node.js and Codex CLI
node --version
codex --version
# Check compiler
nvc++ --version
# Check profiler
nsys --version
# Check GPU
nvidia-smi
# Check Python packages
python3 -c "import openai; print('OpenAI package OK')"python pipeline/initial_translation_codex.py \
--source-api serial \
--target-api omp \
--kernels jacobi \
--results-dir ./resultspython pipeline/initial_translation_codex.py \
--source-api serial \
--target-api omp \
--kernels jacobi \
--results-dir ./results \
--optimizepython pipeline/initial_translation_codex.py \
--source-api serial \
--target-api omp \
--results-dir ./results \
--optimize \
--supervise \
--opt-supervisor-steps 2# Remove --kernels flag to process all kernels in the jsonl file
python pipeline/initial_translation_codex.py \
--source-api serial \
--target-api omp \
--results-dir ./results \
--optimizeAfter translation, check the results directory:
ls -la results/
# View the translated code
cat results/jacobi-omp/initial/main.c
# View optimization steps
cat results/jacobi-omp/step1/main.c
cat results/jacobi-omp/step2/main.c
# View profiling data
cat results/jacobi-omp/step1/nsys_relevant.txt
# View AI agent reasoning
cat results/jacobi-omp/analysis.md
cat results/jacobi-omp/data_plan.md
cat results/jacobi-omp/optimization_plan.mdIf you have Docker and NVIDIA Container Toolkit:
# Clone
git clone https://github.com/Scientific-Computing-Lab/ParaCodex.git
cd paracodex
# Set API key
export OPENAI_API_KEY="your-api-key-here"
# Build and run
docker build -t paracodex:latest .
docker run --gpus all -it -e OPENAI_API_KEY="$OPENAI_API_KEY" -v $(pwd):/workspace paracodex:latest
# Inside container, run translations
python pipeline/initial_translation_codex.py --source-api serial --target-api omp --optimizeSolution: Install Codex CLI via npm:
npm install -g @openai/codex
# If npm is not found, install Node.js firstSolution: Install Node.js:
# Using nvm (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 22
# Or using apt (Ubuntu)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejsSolution: Add NVIDIA HPC SDK to PATH:
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.7/compilers/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.7/compilers/lib:$LD_LIBRARY_PATHSolution: Install NVIDIA Nsight Systems from NVIDIA website.
Solution:
# Option 1: Login with OpenAI Pro account (recommended)
codex login
# Option 2: Set API key environment variable
export OPENAI_API_KEY="your-api-key-here"
# Verify authentication
codex login statusSolution: Check GPU status:
nvidia-smi
# If this fails, check NVIDIA driver installation- Read README.md for detailed usage examples and setup instructions
- Check
pipeline/prompts.mdfor AI prompt documentation (if available) - Explore example results in the
results/directory
- Run
./verify_environment.shto diagnose setup issues - Check README.md for troubleshooting
- Open an issue on GitHub for support
Ready to parallelize some code? Start with a simple kernel and work your way up! 🚀