Declarative Profiling For Parallel Systems