You can run profiling tools to determine what operations take time while running executables within the container. Some profiling tools must be executed on the host as they use tight integrations with the Linux kernel.


Use nvprof with the option --profile-child-processes:

$ nvprof --profile-child-processes singularity exec --nv software.sif python3

On platforms where you need to launch HOOMD with MPI, call nvprof after mpirun:

$ mpirun -n 1 nvprof --profile-child-processes \
  singularity exec --nv software.sif.sif python3


You may need to add the nvprof option --openacc-profiling off on some systems.


Build HOOMD from source to profile it on the CPU. The CPU profiler perf does not interoperate with Singularity containers.