35 votos

Puedo obtener `cábala instalar` para el uso de varios núcleos?

¿Alguien sabe cómo conseguir cabal install a explotar el paralelismo? Estoy compilando con GHC, y aunque no sé si GHC sí se puede hacer en paralelo se basa, sin duda cabal install podría ejecutar varias compilaciones en paralelo, no? Al menos para distintas, independientes de los paquetes?

¿Alguien sabe si es posible y cómo hacerlo?

50voto

Mikhail Glushenkov Puntos 10348

Soy yo el que se estaba trabajando en este proyecto de Summer of Code. Los parches han sido enviados a Duncan, pero no ha examinado todavía. Tenga en cuenta que mi código funciona en el paquete de granularidad, por lo que no tendrás ningún speedup cuando la construcción de un único paquete. Actualmente estoy trabajando en paralelo envoltorio ghc --make, que va a resolver este problema (espero conseguir que se fusiona en la línea principal de la cabal-install tiempo).

Actualización (Feb. 2012): Duncan ha revisado mis parches, necesito incorporar sus observaciones y volver a ellos. Espero que este listo antes de finales de este mes.

Actualización (Abr. 2012): he actualizado mi parches en respuesta a Duncan comentarios. El nuevo código es un poco más lento, pero requiere mucho menos cambios en la Cábala de la biblioteca.

Actualización (Jun. 2012): Duncan Coutts acaba de fusionar la rama paralela a la Cábala de la HEAD. Instalación en paralelo estará disponible en la próxima cabal-install de liberación.

Actualización (Oct. 2012): cabal-install1.16.0 ha sido puesto en libertad. Esta es la primera versión oficial que incluye mi paralelo parches.

31voto

Tobu Puntos 10101

Completar Mikhail Glushenkov la respuesta a documentar el uso de un poco:

Como de la cábala 1.16.0, ahora se puede utilizar

cabal install -j [pkgs…]

Por defecto, este será un trabajo por núcleo. También le da mucho más limpio de salida.

Se puede hacer en paralelo instala por defecto con:

echo "jobs: $(getconf _NPROCESSORS_ONLN)" >> ~/.cabal/config

O (cábala-instalar 1.18+):

echo 'jobs: $ncpus' >> ~/.cabal/config

Obtener la última cábala-instalar con:

cabal update
cabal install cabal-install --bindir ~/bin --upgrade-dependencies

16voto

hammar Puntos 89293

Hubo un Google Summer of Code proyecto este verano para paralelizar cabal-install. Mientras que no se ha fusionado en la línea principal sin embargo, el artículo vinculado proporciona instrucciones para el acaparamiento de la fuente y la construcción de uno mismo.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X