Historias
Slashboxes
Comentarios
 
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.
  • 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.

    --
    Aquí había una firma
    Puntos de inicio:    1  punto
    Moderación   +2  
    Modificador extra 'Interesante'   0  

    Total marcador:   3  
  • Re:Un vistazo

    (Puntos:1)
    También me ha llamado la atención que dijesen (extraído del artículo de ars technica [arstechnica.com]):

    Java and .NET versions of TBB are currently being evaluated by Intel, and may eventually be announced. But Intel maintains that C++ is the company's priority, and it's where they'll be focusing the engineering resources that they're adding to the project.
    --
    Aquí había una firma
    [ Padre ]