*Result*: Enhanced performance using hybrid programming models of task-based workflows and MPI
*Further Information*
*While MPI [1] + X (where X is another parallel programming model) has been proposed and used by the community, we propose a hybrid programming model that combines taskbased model + MPI. Task-based workflows offer the necessary abstraction to simplify the application development for large scale execution, and supporting tasks that launch MPI executions enables to exploit the performance capabilities of manycore systems. Hence, application programmers can get the maximum performance out of the underlying systems without compromising the programmability of the application. We present an extension to PyCOMPSs framework [2], a task-based parallel programming model for the execution of Python applications. Throughout this paper, we name the tasks that natively execute MPI code as Native MPI Tasks, as opposed to tasks that call external MPI binaries. Having Native MPI tasks as part of the programming model means that in the same source file users can have two types of task: tasks that execute MPI code and other tasks that execute non- MPI code. PyCOMPSs organizes the tasks in Directed Acyclic Graph (DAG) and manages their scheduling and execution, hence users can focus only on the logic of the task.*