progrep is a command-line tool (Linux) to show live progress report, status & stats of a running simulation or compute job that executes a given number of iterations. It shows % completed, time remaining, time elapsed, number of threads, MPI_Rank(if any), CPU usage & speed (FPS). The FPS measures may be used in benchmarking, e.g. while optimizing HPC algorithms for performance.
progrep supports both single-threaded and parallel (multicore/multinode - e.g. OpenMP/MPI) jobs. progrep can also report for jobs running on remote hosts, e.g. jobs running on Linux Clusters.
progrep works in client-server model. The server can be installed in your simulation source code with only 4 extra lines (API). When the progrep command is invoked, it queries this server as a client. progrep does not interfere with or slow down your simulation when not invoked. Even when invoked, the overhead is insignificant. Out of the box, the API works with Fortran/C/C++ code.
See Wiki/README for details.
Features
- Progress bar and % completed
- Time elapsed (both wall-clock & CPU time)
- ETA or Time remaining for simulation to complete
- Three types of average frames per second (FPS) for benchmarking performance
- Number of threads
- MPI_Rank (if any)
- Cluster-friendly: report for jobs running on remote nodes
- CPU Usage
- Option to append report to logfile
- Interactive mode (Ctrl+C) and command mode (progrep <PID>)
- Simple API with static library: benefits portability
- Can be installed and used even without sudo/admin/root priviledge. This feature is provided just as a contingency. System-wide installation as root is always preferred.
- man-page
- Bash completion