Try attaching @ComputeTaskNoResultCache to your task. Also filed a ticket - https://issues.apache.org/jira/browse/IGNITE-6284
As far as 2 - I meant empty runnables submitted to an JDK thread pool executor - submission will require to acquire a lock and notify pool thread. So overhead is very significant compared to an execution of a no-op runnable. Ignite processes job execution requests coming from remote node in public pool (org.apache.ignite.configuration.IgniteConfiguration#getPublicThreadPoolSize) and submits jobs to this pool mapped from local node. --Yakov