+/** \rst
+ * Block the current actor until the built :ref:`parallel execution <API_s4u_parallel_execute>` completes, or until the
+ * timeout. \endrst
+ */
+XBT_PUBLIC void parallel_execute(const std::vector<s4u::Host*>& hosts, const std::vector<double>& flops_amounts,
+ const std::vector<double>& bytes_amounts, double timeout);
+
+#ifndef DOXYGEN
+XBT_ATTRIB_DEPRECATED_v325("Please use std::vectors as parameters") XBT_PUBLIC
+ void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount,
+ const double* bytes_amount);
+XBT_ATTRIB_DEPRECATED_v325("Please use std::vectors as parameters") XBT_PUBLIC
+ void parallel_execute(int host_nb, s4u::Host* const* host_list, const double* flops_amount,
+ const double* bytes_amount, double timeout);
+#endif
+
+XBT_PUBLIC ExecPtr exec_init(double flops_amounts);
+XBT_PUBLIC ExecPtr exec_init(const std::vector<s4u::Host*>& hosts, const std::vector<double>& flops_amounts,
+ const std::vector<double>& bytes_amounts);
+
+XBT_PUBLIC ExecPtr exec_async(double flops_amounts);
+
+/** @brief Returns the actor ID of the current actor. */
+XBT_PUBLIC aid_t get_pid();
+
+/** @brief Returns the ancestor's actor ID of the current actor. */
+XBT_PUBLIC aid_t get_ppid();
+
+/** @brief Returns the name of the current actor. */
+XBT_PUBLIC std::string get_name();
+/** @brief Returns the name of the current actor as a C string. */
+XBT_PUBLIC const char* get_cname();
+
+/** @brief Returns the name of the host on which the current actor is running. */
+XBT_PUBLIC Host* get_host();
+
+/** @brief Suspend the current actor, that is blocked until resume()ed by another actor. */
+XBT_PUBLIC void suspend();
+
+/** @brief Yield the current actor. */
+XBT_PUBLIC void yield();
+
+/** @brief Resume the current actor, that was suspend()ed previously. */
+XBT_PUBLIC void resume();
+
+/** @brief kill the current actor. */
+XBT_PUBLIC void exit();
+
+/** @brief Add a function to the list of "on_exit" functions of the current actor.
+ *
+ * The on_exit functions are the functions executed when your actor is killed. You should use them to free the data used
+ * by your actor.
+ *
+ * Please note that functions registered in this signal cannot do any simcall themselves. It means that they cannot
+ * send or receive messages, acquire or release mutexes, nor even modify a host property or something. Not only are
+ * blocking functions forbidden in this setting, but also modifications to the global state.
+ *
+ * The parameter of on_exit's callbacks denotes whether or not the actor's execution failed.
+ * It will be set to true if the actor was killed or failed because of an exception,
+ * while it will remain to false if the actor terminated gracefully.
+ */
+
+XBT_PUBLIC void on_exit(const std::function<void(bool)>& fun);
+
+/** @brief Migrate the current actor to a new host. */
+XBT_PUBLIC void migrate(Host* new_host);
+
+/** @} */
+
+#ifndef DOXYGEN
+XBT_ATTRIB_DEPRECATED_v325("Please use std::function<void(bool)> for first parameter.") XBT_PUBLIC
+ void on_exit(const std::function<void(int, void*)>& fun, void* data);
+#endif
+}