Chapel , el lenguaje Cascade High Productivity Language , es un lenguaje de programación paralelo desarrollado por Cray [ 3 ] y posteriormente por Hewlett Packard Enterprise , que adquirió Cray. Se desarrolló como parte del proyecto Cray Cascade, participante del programa High Productivity Computing Systems (HPCS) de DARPA , cuyo objetivo era aumentar la productividad de las supercomputadoras para 2010. Actualmente se desarrolla como un proyecto de código abierto , bajo la versión 2 de la licencia Apache [ 4 ] .
El compilador Chapel está escrito en C y C++ ( C++14 ). El backend (es decir, el optimizador) es LLVM , escrito en C++. Se requiere Python 3.7 o posterior para algunos componentes opcionales, como el sistema de pruebas de Chapel y c2chapel, una herramienta para generar enlaces C para Chapel. Por defecto, Chapel compila a ejecutables binarios, pero también puede compilar a código C, en cuyo caso no se utiliza LLVM. El código de Chapel puede compilarse a bibliotecas que se pueden llamar desde C, o también se admiten Fortran o, por ejemplo, Python. Chapel admite la programación de GPU mediante la generación de código para unidades de procesamiento gráfico NVIDIA y AMD. [ 5 ]
Objetivos
Chapel tiene como objetivo mejorar la programabilidad de las computadoras paralelas en general y del sistema Cascade en particular, proporcionando un nivel de expresión superior al de los lenguajes de programación actuales y mejorando la separación entre la expresión algorítmica y los detalles de implementación de la estructura de datos .
Los diseñadores del lenguaje aspiran a que Chapel sirva de puente entre los programadores actuales de computación de alto rendimiento (HPC), a quienes describen como usuarios de Fortran, C o C++ que escriben código procedimental utilizando tecnologías como OpenMP y MPI , y los programadores recién graduados que tienden a preferir Java, Python o Matlab, y solo algunos de ellos tienen experiencia con C++ o C. Chapel debería ofrecer las ventajas de productividad que brindan estos últimos lenguajes sin alienar a los usuarios de los primeros. [ 2 ]
Características
Chapel admite un modelo de programación paralela multihilo de alto nivel mediante abstracciones para el paralelismo de datos , el paralelismo de tareas y el paralelismo anidado . Permite optimizaciones para la localidad de datos y computación en el programa a través de abstracciones para la distribución de datos y la ubicación de subcálculos basada en datos . Permite la reutilización de código y la generalidad mediante conceptos orientados a objetos y características de programación genérica . Por ejemplo, Chapel permite la declaración de configuraciones regionales . [ 6 ]
Si bien Chapel toma prestados conceptos de muchos lenguajes anteriores, sus conceptos paralelos se basan más estrechamente en ideas de High Performance Fortran (HPF), ZPL y las extensiones de Cray MTA a Fortran y C.
Véase también
Notas
- ↑ "Especificaciones de la capilla (Agradecimientos)" (PDF) . Cray Inc. 2015-10-01 . Consultado el 2016-01-14 .
- 1 2 Chamberlain, Bradford L. "Una breve descripción general de la capilla" (PDF) . Cray Inc. Recuperado el 22 de abril de 2015 .
- ↑ Lightfoot, David E. (2006). Lenguajes de programación modulares: 7.ª Conferencia Conjunta sobre Lenguajes Modulares . Springer. pág . 20. ISBN 978-3-540-40927-4.
- ↑ "Información sobre la licencia de la capilla" . chapel-lang.org . Consultado el 15 de noviembre de 2015 .
- ↑ "Nota técnica de Chapel: Programación de GPU" . Hewlett Packard Enterprise. 28 de septiembre de 2023. Consultado el 3 de noviembre de 2023 .
- ↑ Bongen Gu; Wikuan Yu; Yoonsik Kwak (28-30 de junio de 2011). «Comunicación y computación superpuestas mediante la sincronización de tareas en un entorno de capilla multilocal». En James J. Park, Laurence T. Yang y Changhoon Lee (eds.). Tecnología de la información del futuro, parte I: 6.ª Conferencia Internacional . Loutraki, Grecia: Springer-Verlag. págs. 285-292 . doi : 10.1007/978-3-642-22333-4_37 . ISBN 978-3-642-22332-7.
Referencias
- Chamberlain, Bradford L. (2011). "Chapel (Cray Inc. HPCS Language)". En Padua, David (ed.). Encyclopedia of Parallel Computing, Volumen 4. Springer. ISBN 9780387097657.
Lecturas adicionales
- Brueckner, Rich (6 de agosto de 2014). "¿Por qué Chapel para la programación paralela?" . InsideHPC . Recuperado el 23 de marzo de 2015 .
- Dun, Nan; Taura, K. (2012). «Un estudio empírico del rendimiento del lenguaje de programación Chapel». 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum . IEEE . pp. 497–506 . doi : 10.1109/IPDPSW.2012.64 . ISBN 978-1-4673-0974-5. S2CID 5904611 .
- Padua, David, ed. (2011). Enciclopedia de Computación Paralela . Vol. 4. Springer Science & Business Media. pp. 249–256 . ISBN 9780387097657.
- Panagiotopoulou, K.; Loidl, HW (2016). "Paralelismo de tareas transparente y resiliente para Chapel". Talleres del Simposio sobre Procesamiento Paralelo y Distribuido (IPDPSW), Simposio Internacional IEEE 2016 , Chicago, IL. doi : 10.1109/IPDPSW.2016.102 ISBN 978-1-5090-3682-0
Enlaces externos
- Sitio web oficial
- capilla en GitHub
- 99 botellas de cerveza en Chapel
- Cray
- lenguajes de programación de matrices
- Familia de lenguajes de programación C
- Lenguajes de programación concurrentes
- Lenguajes de programación orientados a objetos
- Lenguajes de programación creados en 2009
- Software de 2009
- Proyectos de software libre
- Lenguajes de programación de tipado estático