Pour faire simple, programmer pour un processeur multicoeur ou pour un système multiprocesseur, ça signifie qu’on ne peut pas se contenter d’écrire un programme séquentiel, tel qu’on le fait depuis toujours en C, Java, etc. Il faut que le programme soit multithreadé, de manière à ce que l’OS puisse répartir les différentes tâches sur les différentes unités d’exécution. Par définition, une application monotâche ne pourra s’exécuter que sur une seule unité d’exécution.
Toutefois, pas la peine de désespérer. Des langages permettant de masquer cette complexité existent déjà : Scala ou Fortress, par exemple.