Historias
Slashboxes
Comentarios

Intel libera una herramienta para la programación multinúcleo

editada por Yonderboy el 25 de Julio 2007, 12:59h   Printer-friendly   Email story
desde el dept. hitos
chonago nos cuenta: «Es la primera vez en la historia que Intel libera una aplicación comercial y adopta la licencia GPLv2. La biblioteca TBB 2.0 (Thread Building Blocks) permite generar una capa de abstracción sobre la arquitectura de threads de la plataforma usada, facilitando la programación multinúcleo. Dicho en cristiano: TBB les hace la vida más fácil a los programadores para que desarrollen aplicaciones que por fin sean capaces de sacarles todo el jugo a los procesadores de última hornada con dos y cuatro núcleos. La adopción de esta licencia es toda una novedad, y esperemos que la medida surta efecto para impulsar este tipo de desarrollos; como todos sabéis, los procesadores quad-core apenas muestran diferencias de rendimiento con los dual-core por una sencilla razón: el software no aprovecha sus prestaciones.»

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Sobre el desarrollo de SO

    (Puntos:3, Inspirado)
    por lotus143 (34217) el Miércoles, 25 Julio de 2007, 13:25h (#937861)
    Resulta interesante que las empresas se esten empeñando a utilizar y no subutilizar el hardware. Sin embargo, considero que hemos llegado a un nivel de atrasado de software y a un nivel de avance de hardware que se hace necesario rediseñar de cero los sistemas operativos. Tal vez integramente orientados a objetos, totalmente distribuidos ... etc De todas maneras estare probando esa libreria ... Thks
  • ¿ Seguro que lo tienes claro ?

    (Puntos:5, Interesante)
    por undol (17089) el Miércoles, 25 Julio de 2007, 13:29h (#937864)
    Bueno quiza lo mejor seria echar una hojeada a la pagina de intel, pero quiza seria bueno matizar el resumen. Si esta fuera una herramienta para la programación explicita de los threads de un procesador de generacion multi-hilo como los presentados, seguramente estaríamos hablando de una libreria con ciertas comunicaciones con el núcleo para su especialización. Como no es el caso, podemos catalogar esta herramienta como otra "mas" de las librerias de implementación de threads en la capa de usuario, pero con algunos conceptos nuevos de abstracción. El problema de las aplicaciones y el uso de todas las CPUs no es un problema de hoy, es un problema que tiene algunos años, antes que tuvieramos en nuestras manos los economicos dual core existian - y existen- placas con varios procesadores.
  • a buenas horas...

    (Puntos:1, Interesante)
    por pobrecito hablador el Miércoles, 25 Julio de 2007, 18:43h (#937974)
    mangas verdes

    yo más que el multi-threading preferiría que los programadores (los malos, o sea, la mayoría) aprendiesen a manejar mejor la memoria, que es donde más errores hay y donde más vergonzosos son. Conozco un caso de un programa de gestión hospitalaria que se cuelga si le das a cierto menú tras activar una casilla que pone 'introducir código manualmente' (por si no funciona el lector o por si cierta tarjeta no está adaptada). Además, es un programa que "sólo" funciona en W2K Server. Y luego te dicen que si lo puedes arreglar. ¡Cómo lo hago si yo soy de gestión y no tengo el código ni el programa tiene asistencia técnica porque la jodía empresa italiana que lo "desarrolló" quebró en el 2003!... (y esa película fue el primer día, luego vinieron más)

    Definitivamente, hay algunos programas de gestión que te producen el mismo sudor frío que la peli esa de "la noche de los muertos vivientes". argghhhhh!!!
  • por kelosepas (17069) el Miércoles, 25 Julio de 2007, 21:53h (#938039)
    ( http://barrapunto.com/ | Última bitácora: Viernes, 11 Febrero de 2005, 08:45h )
    Y porqué no usan la GPLv3? Porque sencillamente les impide hacer 'tivoization' [wikipedia.org], con el trabajo de los demás. Y ahora vienen con el rollo de la comunidad, no te jode, estos quieren que les hagan el trabajo gratis y luego no soltar ni prenda y tener trincado hard y soft.
    --

    Eso, eso, los cocodrilos que se jodan!
  • Un vistazo

    (Puntos:3, Interesante)

    Había oído hablar de de esta herramienta en la entrevista a Sanjiv Shah de OpenMP en thinking parallel [thinkingparallel.com], pero como él trabaja en Intel siempre parece más sospechoso tratándose de un producto comercial. Ahora que lo han liberado he estado echándole un vistazo y bueno, creo que tiene su ámbito de aplicación y que puede ser muy interesante para facilitar algunas tareas sin reinventar alguna rueda.

    Por analizar un poco la librería, consta como de cuatro partes:

    • Algortimos para bucles paralelos: parallel_for, parallel_reduce, parallel_while. Me ha parecido de lo más interesante de la librería porque es muy fácil de implementar y te ahorra mucha gestión. Al algoritmo se le pasa un contenedor sobre el que operar y un functor y el lo procesa en paralelo automágicamente, aunque parece ser algo parametrizable.
    • Contenedores seguros a accesos concurrentes: concurrent_hash_map, concurrent_vector, concurrent_queue. Usan internamente los bloqueos de grano fino y estructuras de datos sin bloqueos [blogspot.com]. Que bien que no haya que hacerlo por uno mismo, tiene pinta de ser complicadillo y muy fácil hacerlo mal
    • Utilidades para gestión de la concurrencia: mutexes de diverso tipo (si, recursivos también [blogspot.com]), locks, operaciones atómicas
    • Un gestor de tareas: una ayuda para programar orientado a tareas, threads más ligeros que los del sistema.

    Desde que lo han hecho opensource le han asignado un domino propio, http://www.threadingbuildingblocks.org/ [threadingb...blocks.org] en el que hay bastante información. En particular el tutorial al que le he echado un vistazo es Intel® Threading Building Blocks: Tutorial [intel.com]

    Por dar alguna nota no positiva... bueno, de momento solo soporta plataformas desde Intel Pentium 4, porteriores y compatibles, aunque en una de las FAQ del proyecto dicen que soportar todos los procesadores, sistemas operativos y compiladores es una las piedras angulares del proyecto [intel.com]. Veremos.

    Puede ayudar a hacer un poco más multiplataforma el código paralelizado en C++, aunque ya existen muchas librerías que lo hacen, como Boost.Thread [boost.org]. Supongo que estará bien usarlo cuando se necesita mucho rendimiento, una aproximación más sencilla no vale y paralelizarlo de este modo sale rápido y óptimo.

    --
    La nostalgia ya no es lo que era.
    • Re:Un vistazo de mig21 (Puntos:1) Jueves, 26 Julio de 2007, 08:37h