#!/bin/bash #SBATCH --job-name=dppo_mujoco_override #SBATCH --account=hk-project-p0022232 #SBATCH --partition=dev_accelerated #SBATCH --gres=gpu:1 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=1 #SBATCH --cpus-per-task=8 #SBATCH --time=00:30:00 #SBATCH --mem=24G #SBATCH --output=logs/dppo_mujoco_override_%j.out #SBATCH --error=logs/dppo_mujoco_override_%j.err # Load only CUDA for OpenGL support module load devel/cuda/12.4 cd $SLURM_SUBMIT_DIR source .venv/bin/activate # Override ALL compiler settings completely export CC=/usr/bin/gcc export CXX=/usr/bin/g++ export CPP=/usr/bin/cpp # Clear ALL Intel-specific environment variables unset CFLAGS unset CXXFLAGS unset FFLAGS unset LDFLAGS unset OPT # Set clean GCC-only flags that override everything export CFLAGS="-std=c99 -O2 -fPIC -w" export CXXFLAGS="-std=c++11 -O2 -fPIC -w" export LDFLAGS="" # Clean mujoco-py completely first echo "Cleaning all mujoco-py artifacts..." rm -rf .venv/lib/python3.10/site-packages/mujoco_py/generated/ rm -rf .venv/lib/python3.10/site-packages/mujoco_py/.eggs/ rm -rf .venv/lib/python3.10/site-packages/mujoco_py/build/ find .venv/lib/python3.10/site-packages/mujoco_py/ -name "*.so" -delete find .venv/lib/python3.10/site-packages/mujoco_py/ -name "*.pyc" -delete # Set MuJoCo environment export MUJOCO_PY_MUJOCO_PATH=/home/hk-project-robolear/ys1087/.mujoco/mujoco210 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hk-project-robolear/ys1087/.mujoco/mujoco210/bin:/usr/lib/nvidia export MUJOCO_GL=egl # Test with direct Python override of distutils compiler flags echo "Testing mujoco-py with aggressive compiler flag override..." python -c " import os import distutils.util import sysconfig # Override Python's built-in compiler settings os.environ['CC'] = '/usr/bin/gcc' os.environ['CXX'] = '/usr/bin/g++' os.environ['CFLAGS'] = '-std=c99 -O2 -fPIC -w' os.environ['CXXFLAGS'] = '-std=c++11 -O2 -fPIC -w' # Hack: Override sysconfig to remove Intel flags import sys def patched_get_config_var(name): if name in ['CFLAGS', 'BASECFLAGS', 'PY_CFLAGS', 'PY_CORE_CFLAGS', 'CCSHARED']: return '-std=c99 -O2 -fPIC -w' elif name in ['CXXFLAGS', 'CXX']: return '-std=c++11 -O2 -fPIC -w' elif name == 'CC': return '/usr/bin/gcc' else: # Call the original function for other variables return sysconfig._original_get_config_var(name) # Store original and patch sysconfig._original_get_config_var = sysconfig.get_config_var sysconfig.get_config_var = patched_get_config_var print('Attempting mujoco_py import with patched sysconfig...') try: import mujoco_py print('SUCCESS: mujoco_py compiled and imported successfully!') except Exception as e: print(f'FAILED: {e}') import traceback traceback.print_exc() "