#!/bin/bash
#SBATCH -J pyjob
#SBATCH -N 1
#SBATCH --ntasks-per-node=3 # 64 processes on 1 node
#SBATCH --time=02:10:00 # hh:mm:ss
#SBATCH -o %x-%j.out
#SBATCH -e %x-%j.err
#SBATCH --partition=cpu_x440 ##all ###cpu_x440
#SBATCH --mem=200G
#SBATCH --exclude=node0014
# --- Python environment ---
#module load python/3.10 # or your site’s module
module use /software/modulefiles
module purge
module load conda/25.08
module load kwant/1.5-py39
module load tkwant/1.1.1-py311
# source ~/envs/myenv/bin/activate # if using a venv
# --- Run ---
# If your code uses MPI / mpi4py (one process per rank):
# srun -n 16 python -u your_script.py
srun -n 3 python -u tip.py# mpirun -np 4 python mpi_sin_example.py
from mpi4py import MPI
import numpy as np
import math
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()
# Each processor takes a different angle
# Example: angles equally spaced between 0 and 2π
angles = np.linspace(0, 2*np.pi, size, endpoint=False)
my_angle = angles[rank]
# Each processor computes sin(angle)
my_value = math.sin(my_angle)
# Gather all values at root (rank 0)
all_values = comm.gather(my_value, root=0)
if rank == 0:
print("Angles:", angles)
print("Sin values from all processors:", all_values)