PyMC
PyMC is a Python package for Bayesian statistical modeling and probabilistic machine learning which focuses on advanced Markov chain Monte Carlo and variational fitting algorithms.
Slurm Script
#!/bin/bash
#SBATCH -J pym3_codejob # Job name
#SBATCH -o pym3_output.%j.out # Name of stdout output file (%j expands to jobId)
#SBATCH -p CUIQue # Queue name
#SBATCH -N 1 # Total number of nodes requested
#SBATCH -n 16 # Total number of mpi tasks requested
module load python/3.8.12 py-numpy/1.22.4 py-pymc3/3.8 py-arviz/0.6.1
python3.8 pym3example.py
pym3example.py Code
import arviz as az
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
##%config InlineBackend.figure_format = 'retina'
# Initialize random number generator
RANDOM_SEED = 8927
rng = np.random.default_rng(RANDOM_SEED)
az.style.use("arviz-darkgrid")
# True parameter values
alpha, sigma = 1, 1
beta = [1, 2.5]
# Size of dataset
size = 100
# Predictor variable
X1 = np.random.randn(size)
X2 = np.random.randn(size) * 0.2
# Simulate outcome variable
Y = alpha + beta[0] * X1 + beta[1] * X2 + rng.normal(size=size) * sigma
print (Y)
Submit the job to the scheduler as
sbatch mypym3.slurm
For managing your “job” , refer to this guide.
For more on Pymc framework,, refer to their official documentation
https://www.pymc.io/projects/docs/en/stable/learn.html