The contents of this repo showcase the planned content for a 3 hour tutorial at PEARC. This tutorial consists of 5 parts:
- Introduction to AI Agents
- LAB: Introduction to TACC compute resources
- LAB: Introduction to building simple agents
- LAB: Building agents for data analysis
- LAB: Building agents for use in HPC environments
Note
A containerized kernel with all required models and dependencies will be provided on TACC systems at the beginning of the course. In the event of an internet outage, please follow one of the local installation instructions below before the course.
This class requires an active and verified TACC account:
- If you do not have a TACC account, you must register for one here. This process involves verifying your email, agreeing to the TACC Acceptable Use Policy, and setting up multifactor authorization on your mobile device.
- All participants must submit their TACC username to this Google form. This form allows us to add you to the project allocation prior to the start of the tutorial.
Detailed instructions for accessing TACC's compute resources and setting up your environment for the Labs 3-5 is included in the slide deck for Part (2) and we will go over it together during the tutorial.
If internet access is unavailable during the tutorial, you can use this Docker-based setup as the recommended local installation method for offline execution of the labs.
-
Install Docker Desktop
-
Install
gitcommand line client -
Clone the repository:
git clone https://github.com/jrduncan831/pearc26_tutorial_ai_agents.git -
Navigate into the project directory:
cd pearc26_tutorial_ai_agents -
Run the installation script:
bash install.shThis script will:
- Pull a preconfigured Docker container that already includes:
- Ollama installed and configured for local LLM management
- Apptainer installed for sandboxed code execution
- All required Python dependencies for the tutorial
- Download required models and assets:
- LLMs: gemma3:27b and qwen3:8b
- Embedding model: all-MiniLM-L6-v2
- Apptainer container image: python_3.10-slim.sif
Note: This process requires approximately 33GB of free disk space.
- Pull a preconfigured Docker container that already includes:
-
Launch the environment:
bash launch.shThis will:
- Start the containerized environment
- Launch Jupyter Lab inside the container
- Automatically open the interface in your default web browser
If the above docker installation method does not work for you, below is information for building the environment from scratch.
Caution
We are unable to provide specific instructions/support for individual machines given that this would be highly dependent on your specific platform (i.e Hardware, Operating System and other tool chains). Please try and adapt the generic instructions provided to your specific machine
Other software dependencies:
Note
Please note that these are prerequisites and we expect them to be setup before the tutorial. Given the time constraints of the tutorial, we will be unable to pause instruction to assist to provide additional support for installations issues individually
-
Install
gitcommand line client -
Install
uv -
Install Python 3.12
uv venv --python 3.12 pearc26_tutorial
-
Activate python environment
source pearc26_tutorial/bin/activate
-
Install package dependencies (requirements.txt)
uv pip install -r requirements.txt
-
Install Docker Desktop
- Official Download
- Official Docker CLI documentation
- Download a container for sandboxed execution of agent code outputs
docker pull python:3.10-slim
-
Install Ollama
- Official Download
- Official Install Instructions
- Download 2 models locally (qwen3:8b and gemma3:27b: This will require about 22GB of free space)
ollama pull qwen3:8bollama pull gemma3:27b
-
Download the text embedding model all-MiniLM-L6-v2 to use with the SentenceTransformer module
python - << "PY"
from sentence_transformers import SentenceTransformer
# This will download/cache the model into the HF_HOME/hub directory
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
_ = model.encode(["test load"])
print("Downloaded and cached all-MiniLM-L6-v2.")
PY