Un compilateur ou un interpréteur n’a pas connaissance de la sémantique du programme et ne peut que faire des choix arbitraires ; l’utilisation efficace d’un système multi-coeur nécessite l’intervention du développeur ou tout du moins le choix d’une architecture adaptée. Dans le cas d’une application bureautique ce n’est pas un problème mais dès lors qu’il y a des calculs intensifs ou que cela concerne un serveur cela fait toute la différence.