Educational Analytics¶
NØMAD Edu bridges the gap between infrastructure monitoring and educational outcomes, helping instructors, mentors, and users track the development of computational proficiency.
Overview¶
Traditional HPC metrics tell you what happened. NØMAD Edu tells you how well users are learning to use HPC effectively.
Use cases:
- Instructors: Track class-wide skill development, identify struggling students
- Research mentors: Monitor graduate student onboarding progress
- HPC staff: Evaluate workshop and training effectiveness
- Users: Self-assess and improve HPC practices
Quick Start¶
# Explain a job with proficiency scores and recommendations
nomad edu explain 12345
# Track a user's improvement over time
nomad edu trajectory alice
# Generate a report for a course or research group
nomad edu report cs301
Commands¶
nomad edu explain¶
Analyze a single job with proficiency scores and actionable recommendations.
Options:
| Option | Description |
|---|---|
--db PATH |
Database path (default: configured DB) |
--json |
Output as JSON |
--no-progress |
Skip historical comparison |
Example output:
NØMAD Job Analysis — 1104
────────────────────────────────────────────────────────
User: alice Partition: compute Node: node03
State: COMPLETED Runtime: 33h 38m / 48h 00m requested
Proficiency Scores
────────────────────────────────────────────────────────
CPU Efficiency ██░░░░░░░░ 22.6% Needs Work
Memory Efficiency █████████░ 90.4% Excellent
Time Estimation ██████████ 97.4% Excellent
I/O Awareness ███████░░░ 68.8% Good
────────────────────────────────────────────────────
Overall Score ███████░░░ 69.8% Good
Recommendations
────────────────────────────────────────────────────────
CPU Efficiency:
Very low CPU utilization at 21% — requested 4
cores but used ~1. This wastes resources and
may delay other users' jobs.
Try: #SBATCH --ntasks=1
If your code is single-threaded, request 1 core.
Your Progress (last 30 jobs)
────────────────────────────────────────────────────────
CPU Efficiency 53.7% → 22.6% ↓ declining
Memory Efficiency 90.0% → 90.4% → stable
Time Estimation 88.4% → 97.4% ↑ improving
I/O Awareness 91.8% → 68.8% ↓ declining
nomad edu trajectory¶
Track a user's proficiency development over time.
Options:
| Option | Description |
|---|---|
--db PATH |
Database path |
--days N |
Lookback period (default: 90) |
--json |
Output as JSON |
Example output:
NØMAD Proficiency Trajectory — alice
────────────────────────────────────────────────────────
Jobs analyzed: 173 Period: 2026-02-04 → 2026-02-15
Stable proficiency
Score Progression
────────────────────────────────────────────────────────
2026-01-29 ████████░░ 78.6% (21 jobs)
2026-02-05 █████████░ 78.9% (144 jobs)
Dimension Changes
────────────────────────────────────────────────────────
I/O Awareness 90.6% → +4.6%
Memory Efficiency 85.9% → +0.2%
GPU Utilization 85.0% → +0.0%
CPU Efficiency 51.9% → -1.2%
Time Estimation 81.3% → -2.1%
nomad edu report¶
Generate aggregate reports for courses, research groups, or any Linux group.
Options:
| Option | Description |
|---|---|
--db PATH |
Database path |
--days N |
Lookback period (default: 90) |
--json |
Output as JSON |
Example output:
NØMAD Group Report — cs101
────────────────────────────────────────────────────────
Members: 4 Jobs: 602
Period: 2026-02-04 → 2026-02-16
Key Insight
────────────────────────────────────────────────────────
0/4 students improved overall proficiency
Group Proficiency
────────────────────────────────────────────────────────
Memory Efficiency █████████░ 85.2% → -0.8%
GPU Utilization █████████░ 85.0% → +0.0%
I/O Awareness ████████░░ 80.2% → -1.5%
Time Estimation ████████░░ 78.9% → -1.1%
CPU Efficiency █████░░░░░ 51.9% → -2.4%
Weakest area: cpu | Strongest: memory
Student Breakdown
────────────────────────────────────────────────────────
Improving: 0
Stable: 4
Declining: 0
Per-Student Summary
────────────────────────────────────────────────────────
User Jobs Overall Change Trend
charlie 136 73.2% +0.7% →
alice 173 78.9% +0.3% →
diana 147 76.8% +0.1% →
bob 146 76.1% -3.0% →
Setting Up Groups¶
NØMAD uses Linux groups for course/lab membership. To track a class:
Option 1: Use existing Linux groups¶
If your users are already in groups (e.g., bio301, cs101):
Option 2: Create dedicated groups¶
# Create group for course
sudo groupadd cs301
# Add students
sudo usermod -aG cs301 student01
sudo usermod -aG cs301 student02
# ...
# Collect and report
nomad collect -C groups --once
nomad edu report cs301
Option 3: Manual group file¶
Create a CSV file and import:
Dashboard Integration¶
The dashboard includes an Education tab showing:
- Class-wide proficiency distributions
- Individual student progress
- Common problem areas
- Improvement trends over time
Access via: nomad dashboard → Education tab
Best Practices¶
For Instructors¶
- Baseline early: Collect data from the first week to establish starting points
- Check weekly: Review group reports to identify struggling students early
- Focus on trends: Individual job scores vary; trajectories matter more
- Share reports: Let students see class-wide (anonymized) progress
For Mentors¶
- Onboarding checkpoint: Review trajectory after first 10 jobs
- Specific feedback: Use
explainoutput to guide discussions - Celebrate improvement: Recognize when dimensions improve
For Users¶
- Review failed jobs: Use
explainto understand what went wrong - Track your trajectory: Check weekly to see improvement
- Act on recommendations: The suggestions are data-driven
Technical Details¶
For detailed information on how proficiency is computed:
- Proficiency Scoring — Formulas, dimensions, and scoring rubrics
- Database Schema — How scores are stored
Troubleshooting¶
"Job not found in database"¶
Job 12345 not found in database.
Hint: Specify a database with --db or run 'nomad init' to configure.
Example: nomad edu explain 12345 --db ~/nomad_demo.db
Solutions:
- Specify the database:
nomad edu explain 12345 --db /path/to/db - Run
nomad initto configure the default database - Ensure data collection is running:
nomad collect
"Not enough data for user"¶
The user needs at least 3 completed jobs for trajectory analysis.
"No data found for group"¶
Ensure group membership data has been collected: