Cilk

Esto se debe a que estas responsabilidades están separadas de forma tal que un programa Cilk puede correr sin volver a escribir en cualquier número de procesadores, incluyendo uno.Cuando estas palabras claves son eliminadas de un código escrito en Cilk, el resultado es un programa válido en el lenguaje C, llamado elisión en serie(o C elisión) del programa completo escrito en lenguaje Cilk.Desde que los procedimientos Cilk pueden llamar directamente a los procedimientos C, pero estos últimos no pueden hacer lo mismo con los primeros, esta palabra clave se necesita distinguir del código en Cilk del código en C. Las palabras claves restantes son: Estas serán descritas con más detalle a continuación.sincronizar – esta palabra clave indica que la ejecución del procedimiento actual no puede continuar hasta que todos los procedimientos engendrados previamente hayan terminado y retornado sus resultados al marco padre.Más abajo se encuentra la implementación recursiva de la función Fibonacci en Cilk, con llamados recursivos realizados en paralelo, en los cuales se utilizan las palabras claves cilk, engendrar y sincronizar (el código de un programa escrito en Cilk no está numerado, los números han sido añadidos solo para hacer el análisis posterior de forma más fácil).Si este código se ejecutara por un solo procesador para determinar el valor de fib(2), ese procesador debe crear un marco para fib(2), y ejecutar las líneas de la 1 hasta la 5.Cuando ese código es ejecutado en una máquina donde existen varios procesadores la ejecución procede de forma diferente.Aunque la terminología común de Cilk se refiere a procesadores que toman la decisión de engendrar fuera del trabajo a otros procesadores, realmente es el mecanismo de planificación el que asigna los procedimientos a los procesadores para la ejecución, utilizando una política llamada trabajo-hurto, descrita más abajo.)Si el procesador que ejecuta el fib(2) ejecuta la línea 13 antes que los otros procesadores hayan completado sus marcos, generaría un resultado incorrecto o un error; fib(2) estaría intentando agregar los valores guardados en x y y, pero uno o ambos valores estarían perdidos.abortar—Esta palabra clave solamente puede ser utilizada dentro de una ensenada; esta le dice al planificador que cualquier otro procedimiento que haya sido engendrado por el procedimiento padre puede abortar de forma segura.Nuevamente, es fácil entender si primeramente echamos una mirada a cómo el código de Cilk es ejecutado en un ordenador con un solo procesador.El procesador mantiene una pila en la cual almacena cada marco que puede eliminar en dependencia del orden de los llamados a procedimientos.[3]​ Intel ha declarado su deseo para refinar Cilk+ y permitirle que sea implementado por otros compiladores para obtener una mayor adopción industrial.