  Future Exascale systems will feature massive parallelism, many-core
processors and heterogeneous architectures. In this scenario, it is
increasingly difficult for HPC applications to fully and efficiently utilize
the resources in system nodes. Moreover, the increased parallelism exacerbates
the effects of existing inefficiencies in current applications. Research has
shown that co-scheduling applications to share system nodes instead of
executing each application exclusively can increase resource utilization and
efficiency. Nevertheless, the current oversubscription and co-location
techniques to share nodes have several drawbacks which limit their
applicability and make them very application-dependent.
  This paper presents co-execution through system-wide scheduling. Co-execution
is a novel fine-grained technique to execute multiple HPC applications
simultaneously on the same node, outperforming current state-of-the-art
approaches. We implement this technique in nOS-V, a lightweight tasking library
that supports co-execution through system-wide task scheduling. Moreover, nOS-V
can be easily integrated with existing programming models, requiring no changes
to user applications. We showcase how co-execution with nOS-V significantly
reduces schedule makespan for several applications on single node and
distributed environments, outperforming prior node-sharing techniques.
