Chapel

Software captura de pantalla:
Chapel
Detalles de software:
Versión: 1.3.0 Pre-Alpha
Fecha de carga: 11 May 15
Promotor: Cray Inc.
Licencia: Libre
Popularidad: 12

Rating: nan/5 (Total Votes: 0)

Capilla es un nuevo lenguaje de programación paralela siendo desarrollado por Cray Inc. como parte del programa de Alta Productividad Sistemas Informáticos liderada por DARPA (HPCS). Capilla está diseñado para mejorar la productividad de los usuarios de computadoras de alta gama mientras que también sirve como un modelo de programación paralela portátil que se puede utilizar en grupos de productos básicos o sistemas multinúcleo escritorio. Capilla se esfuerza por mejorar enormemente la capacidad de programación de computadoras paralelas a gran escala mientras unes o superando el rendimiento y la portabilidad de los modelos de programación actuales como MPI.
La aplicación Capilla apoya un modelo de ejecución multihilo mediante abstracciones de alto nivel de paralelismo de datos, el paralelismo de tareas, concurrencia y paralelismo anidado. & Nbsp; Tipo de localidad de Capilla permite a los usuarios especificar y razonar sobre la colocación de datos y tareas en una arquitectura de destino con el fin para sintonizar por localidad. Capilla apoya agregados de datos con vista global con implementaciones definidas por el usuario, las operaciones en las estructuras de datos distribuidas que permite que se exprese de una manera natural. En contraste con muchos lenguajes paralelos de alto nivel anteriores, Capilla está diseñado en torno a una filosofía multirresolución, lo que permite a los usuarios escribir código inicialmente muy abstracto y luego agregar incrementalmente más detalle hasta que están tan cerca de la máquina que requieren sus necesidades. Capilla apoya la reutilización de código y prototipado rápido a través de diseño orientado a objetos, la inferencia de tipos y características de programación genérica.
Capilla fue diseñado a partir de primeros principios en lugar de mediante la extensión de una lengua existente. Es un lenguaje de bloques estructurados imprescindible, diseñado para ser fácil de aprender para los usuarios de C, C ++, Fortran, Java, Perl, Matlab, y otras lenguas populares. Mientras que la capilla se basa en los conceptos y la sintaxis de muchos idiomas anteriores, sus características paralelas están más directamente influidos por ZPL, de alto rendimiento Fortran (HPF) y el Cray MTA & trade; / Cray XMT y el comercio; extensiones a C y Fortran

¿Qué es nuevo en esta versión:.

  • Highlights (ver detalles más abajo)
  • dividida 'def' palabra clave en 'proc' (para los procedimientos) y 'iter' (para iteradores)
  • (ver '$ CHPL_HOME / util / convertir-ceos --help' para la ayuda de actualizar los códigos existentes)
  • añadido distribución "replicada" y una mejor distribución "Block-cíclica '
  • (ver & quot; Estándar Distribuciones & quot; en especificaciones y ejemplos / cebadores / distributions.chpl)
  • añade capas de tarea de un solo entorno nacional para Nanos ++ (BSC) y Qthreads (Sandia)
  • (ver doc / README.tasks)
  • importante reelaboración de la semántica y la aplicación de rango
  • (ver & quot; Los cambios semánticos / Cambios en la capilla de Idioma & quot; a continuación para el detalle)
  • soporte inicial para este tipo de volátiles: bool, int, uint, real, imag
  • (ver doc / notas técnicas / README.volatile)
  • Soporte para consts extern y clases (punteros-a-estructuras)
  • (ver doc / notas técnicas / README.extern)
  • soporte mejorado para paralelismo de datos en el Cray XMT
  • extensas mejoras en los códigos de ejemplo en el directorio examples /
  • (ver "Códigos Ejemplo 'a continuación y ejemplos / README)
  • añadió la mayoría de ejemplos de código de la especificación de un nuevo directorio examples /
  • (ver ejemplos / spec / *)
  • añade una nota técnica que describe la interfaz de mapa de dominio definido por el usuario
  • (ver doc / notas técnicas / README.dsi)
  • extensos cambios a la especificación del lenguaje
  • (ver 'Documentación' abajo)
  • varias mejoras en el tiempo de ejecución de tareas a la vez y capas de comunicaciones
  • (ver & quot; Runtime Library cambios & quot; a continuación)
  • sintáctica / Nombrar cambios
  • dividida 'def' palabra clave en 'proc' (para los procedimientos) y 'iter' (para iteradores)
  • (ver '$ CHPL_HOME / util / convertir-ceos --help' para la ayuda de actualizar los códigos existentes)
  • dominios 'aritmética' renombrados / matrices de dominios '' rectangulares / arrays
  • añadido soporte para los literales de punto de forma flotante "1.e ..."
  • (anteriormente, sólo "1e ... 'y' 1.0E ... 'fueron apoyados)
  • Los cambios semánticos / Cambios en Capilla Idioma
  • varias mejoras en rangos (ver "Rangos" capítulo de la especificación del lenguaje):
  • añade un concepto de alineación para indicar un módulo de alineación | zancada |
  • agregó un operador 'align' y consulta a los rangos para especificar / alineación de consulta
  • (por ejemplo, '1..10 por 3 align 2' = & gt; '2, 5, 8' desde el 2 == 5 == 8, mod 3)
  • == definida sobre rangos en función de las secuencias de números enteros que generan
  • ident definido (r1, r2) para decir si R1 y R2 son semánticamente idéntico
  • definido "# k 'para k & lt; 0 en el sentido de & quot; contar desde el final del rango de & quot;
  • añadió 'primero', 'última', 'alignedLow,' métodos alignedHigh 'a rangos
  • (por ejemplo, '1..10 por -2' = & gt; primero == 10, última == 2, alignedLow = 2, alignedHigh = 10)
  • añadido soporte para una variedad de nuevas funciones de consulta gama
  • (por ejemplo, alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • añadido soporte para bool volátil, int, uint, real y tipos imag
  • (ver doc / notas técnicas / README.volatile)
  • agregó un cheque de fin de archivo para el tipo de archivo
  • (por ejemplo., 'Cuando! Infile.eof ...')
  • retiró el apoyo para el tratamiento de "retorno" en el iterador como un 'rendimiento'
  • (por ejemplo, el cambio 'foo iter () {return x;}' a 'foo iter () {x rendimiento; return;}')
  • añadido soporte para módulos referenciando sin antes "ellos ing día'-
  • (por ejemplo, el módulo M1 {var x ...} módulo M2 {...} M1.x ... ahora es legal)
  • añade una consulta callStackSize al tipo locale
  • (por ejemplo, 'here.callStackSize' devuelve el tamaño de la pila de llamadas en la localización actual)
  • eliminado el punto y coma requerido previamente desde el final de las declaraciones de enumeración
  • (por ejemplo, 'colores enum {rojo, azul, verde}' es ahora legal, previamente es necesario ';')
  • añadido soporte para una sola coma final al final de las listas de enumeración
  • (por ejemplo, 'colores enum {rojo, azul, verde,}' es ahora legal)
  • retirado el apoyo a +/- operadores en dominios rectangulares; utilice translate ()
  • Características recién implementadas
  • == implementado /! = Para rectangular asociativa y dominios dispersos
  • Las distribuciones estándar
  • agregó un primer proyecto de distribución "replicada" para almacenar datos de forma redundante
  • (ver ejemplos / cebadores / distributions.chpl)
  • mejorado 'Block-cíclica', suficiente para aplicar correctamente HPCC PTRANS y HPL
  • (ver ejemplos / HPCC / ptrans.chpl, hpl.chpl; examples / cebadores / distributions.chpl)
  • redundancia eliminado en la especificación de iteradores líder entre dominios / arrays
  • Módulos estándar
  • añadió constantes INFINITY y NAN al módulo Math.chpl
  • (ver 'Matemáticas' en & quot; Módulos de Standard & quot; en la especificación del lenguaje)
  • añadió isinf () y isFinite () rutinas de prueba al módulo Math.chpl
  • (ver 'Matemáticas' en & quot; Módulos de Standard & quot; en la especificación del lenguaje)
  • añadió una media docena más de rutinas para el módulo GMP.chpl
  • Documentación
  • añade una nueva nota técnica que describe la interfaz de mapa de dominio definido por el usuario
  • (ver doc / notas técnicas / README.dsi)
  • hizo muchas mejoras a la especificación del lenguaje
  • importantes revisiones al capítulo Dominios para mejorar la claridad / exactitud
  • mejorado y estructura unificada de Registros y Clases capítulos
  • importantes revisiones al capítulo Mapas de dominio para mejorar la claridad / exactitud
  • códigos de ejemplo llamado para proporcionar una referencia cruzada a ejemplos / spec / programas
  • aclaró la legalidad de la etiqueta / pausa / continuar en bucles paralelos
  • actualizado las descripciones de leer [En] / escritura [En]
  • solucionado algunos problemas en los campos de archivo de pedidos
  • formatear la memoria descriptiva como un "libro" en LaTeX
  • varias correcciones menores de errores tipográficos / errores
  • Definiciones mejoradas / descripciones de varios términos
  • añadió documentación de locale.name
  • y muchos otros cambios ...
  • documento de referencia rápida actualizado para incluir nición & gt; proc / cambio iter, alinee op
  • .
  • reescribió / reorganizó README.extern para aclarar las explicaciones y llevar hasta a la fecha
  • agregó un README que describe el estado de "local" (doc / notas técnicas / README.local)
  • agregó un README que describe tipos volátiles (doc / notas técnicas / README.volatile)
  • README.comm-diagnóstico actualizados mencionar estadísticas horquilla rápidos
  • varios archivos README actualizados
  • Códigos Ejemplo
  • coloca la mayoría de los ejemplos de código de la especificación del lenguaje. a una nueva especificación / subdirectorio
  • mejorado el directorio de cebadores /:
  • añade una nueva cartilla para el uso de los procedimientos (cebadores / procedures.chpl)
  • añade una cartilla básica de dominios (cebadores / domains.chpl)
  • renombró los locales imprimación locales.chpl y mejoró
  • mejorado la imprimación distribuciones y añadió usos Block-cíclicos y replicados
  • actualizado el cebador gama (cebadores / range.chpl)
  • mejorado la imprimación iteradores (cebadores / iterators.chpl)
  • mejorado la imprimación reducciones (cebadores / reductions.chpl)
  • añadido GetCurrentTime () para la imprimación temporizadores (cebadores / timers.chpl)
  • añadió descripciones de los alias de tipo y tipos de configuración de las variables de imprimación
  • (ver cebadores / variables.chpl)
  • Directorio HPCC / puntos de referencia mejorado
  • añadió primera versión de HPCC PTRANS al / directorio HPCC (ptrans.chpl)
  • añadió versión más limpia de HPCC HPL al / directorio HPCC (hpl.chpl)
  • añadió una variantes / subdirectorio de ejemplos / HPCC exhibir otros enfoques
  • añadió corriente promoted.chpl para mostrar el uso de la promoción en el mundial STREAM Triad
  • añadió ra-cleanloop.chpl para mostrar más limpia (pero en la actualidad más lento) kernel RA
  • mejoradas ejemplos de nivel superior:
  • renombrado existente & quot; hola, mundo & quot; ejemplos que sugieren un orden de lectura lógico
  • (ver ejemplos / hola * .chpl)
  • añadir datos de datos paralelos y distribuidos paralelos hola, ejemplos del mundo
  • (ver ejemplos / hello3-datapar.chpl, ejemplos / hello4-datapar-dist.chpl)
  • agrega comentarios a los diversos hola, ejemplos del mundo (ejemplos / hola * .chpl)
  • actualizado todos los ejemplos a la semántica del lenguaje actuales
  • utilizar 'proc' / 'iter' en vez de 'def'
  • Actualización para reflejar nueva semántica rango
  • de plataforma específica Notas
  • para Cray XT / Cray XE, la mejora de los lanzadores aprun y pbs-aprun
  • (ver & quot; & quot notas Launcher específica; a continuación)
  • para Cray XMT, añadió soporte para bucles paralelos sobre rangos
  • para Cray XMT, añadió generación de noalias pragmas a forall variables de bucle
  • añadido soporte para MareNostrum del BSC incluyendo documentos y un lanzador especial
  • (ver doc / plataformas / README.marenostrum)
  • -Launcher específica notas
  • añadido opciones lanzador específico para --help capacidad
  • mejorado propagación de códigos de estado de salida a través de lanzadores
  • cambió lanzadores para apoyar a base de exec (en lugar de basado en el sistema) comandos
  • hizo lanzadores usan 'unlink "en lugar de sistema (' rm ') para eliminar los archivos temporales
  • añade un lanzador para MareNostrum del BSC
  • reducción del número de archivos temporales que se utilizan para capturar la salida del "sistema" comandos
  • mejoras lanzador aprun:
  • añade una bandera --cc para especificar la asignación de CPU w / en un nodo
  • añade una bandera -q para ejecutar el lanzador en modo silencioso
  • añade capacidad de depuración a través CHPL_LAUNCHER_DEBUG para mantener los archivos tmp alrededor
  • mejoras lanzador pbs-aprun:
  • añade una bandera --cc para especificar la asignación de CPU w / en un nodo
  • añade capacidad de depuración a través CHPL_LAUNCHER_DEBUG para mantener los archivos tmp alrededor
  • limpiado de salida para deshacerse de algunas de impresión extraña
  • Soporte lanzador hecho nuestro sistema de prueba
  • añadió --walltime y banderas --queue al lanzador como alternativas a la ENV. vars.
  • Cambios compilador
  • hizo el compilador de impresión "verdadero" / "falso" en las firmas de tipos en lugar de 1/0
  • añadió param config 'noRefCount' desactivar recuento de referencias (puede perder memoria)
  • Banderas del compilador
  • añade una bandera --print-pila de llamadas-on-error para mostrar lo que condujo a una mala decisión
  • añade una bandera --no-codegen saltarse la generación de código y fase de vinculación
  • Cambios Interoperabilidad
  • añadido soporte para extern C & quot; clases de & quot; (Tipos triple-a struct)
  • añadido soporte para consts extern (ver README.extern)
  • Mejoras mensaje de error
  • añadió una advertencia huérfano declaraciones 'uso' fuera de módulos declarados
  • (por ejemplo, 'utilizar M1; módulo M2 {}' debe ser típicamente 'módulo M2 {utilización M1;}')
  • realizado mensaje de error en tiempo de análisis utiliza el "nombre de archivo: lineno: 'estándar de formato
  • genera un mensaje de error para hacer referencia a un nombre de clase en un método principal
  • (por ejemplo, "clase C {def Cm () {...}} 'ahora genera un mensaje de error)
  • Corrección de errores / Nuevas comprobaciones semánticas (por la semántica de edad)
  • impidió tipos de configuración de ser establecido usando banderas de línea de comandos de tiempo de ejecución
  • fija la capacidad del compilador para manejar los sindicatos sin campos
  • fija las reducciones minloc / maxloc para manejar vacíos rangos / subintervalos de valores
  • corregido un error en el que se ignoró el argumento de "camino" a los constructores de archivos
  • hizo sindicatos vacías funcionan correctamente
  • fija un problema de desbordamiento de fragmentación hasta rangos de distribución / paralelización
  • corrigió un fallo que implica el apoyo a los tipos de registro extern vacías
  • arreglado un error que involucra funciones extern que devuelven registros
  • corrigió un fallo relacionado con la copia de los registros externos
  • aplicación fijo de +/- operadores asociativa / dominios dispersos
  • corregido un error relacionado con nombres de módulos basados ​​en nombres de archivo que contienen múltiples 'de.
  • mensajes de error agregado para expandir / exterior / interior en dominios irregulares
  • añade un error para los constructores / destructores con un tipo de retorno especificada
  • fijó un par de errores relativos a la 'rápida sobre "optimización
  • añadió un cheque contra la construcción de clases sin especificar campos genéricos
  • Cambios en los paquetes
  • añadió código resaltador de sintaxis para GNU fuente culminante
  • (véase etc / fuente-highlight / README)
  • mejoradas emacs colorear soporte para la versión 22.x
  • (véase etc / emacs / README)
  • cambios a coloreado de sintaxis vim para reflejar nueva 'proc' / palabras clave 'iter'
  • (véase etc / vim / README)
  • añade un script para convertir 'el uso de' códigos existentes def 'a' iter '/' proc '
  • (ver $ CHPL_HOME / util / convertir-ceos)
  • ejemplos y documentación multirealm removidos por el momento
  • Terceros Cambios Software
  • actualizado a la versión 1.16.1 GASNET
  • añadió copias de Nanos de BSC ++ y Qthreads de Sandia
  • (véase terceros / README)
  • hizo un paso posterior a la instalación para GASNET que cambia rutas absolutas al respecto
  • PVM eliminado por el momento, debido a la inestabilidad
  • Runtime Library cambios
  • añade capas de tarea de un solo entorno nacional para Nanos ++ (BSC) y Qthreads (Sandia)
  • varias mejoras en la capa de tareas de tiempo de ejecución:
  • añade una nueva interfaz para tener la chpl_main llamada capa de tareas ()
  • cambiado tarea función init tomar args maxThreadsPerLocale / callStackSize
  • añade una capacidad de rendimiento de la tarea a la interfaz de capa de tareas
  • mejorado código de tiempo de ejecución para evitar el uso de sincronización vars antes de inicializar tarea
  • quitado forma macro-ized de tareas de interfaz; usando nombres estándar en vez
  • nomenclatura unificada de todas las rutinas de capa tarea chpl_sync _ * () y chpl_task _ * ()
  • requisito eliminado para implementar la interfaz única variable de
  • terminación movido de hilos de capa tareas fifo a pthreads roscado
  • aplicación simplificada de variables de sincronización en la capa de roscado pthread
  • trasladado la responsabilidad de número de hilos de tareas fifo a Pthread roscado
  • varias mejoras en la capa de comunicación en tiempo de ejecución:
  • reestructurado la interfaz de comunicación para apoyar argumentos longitud / tipo
  • añade una interfaz para la no-bloqueo llegar operaciones para el comunicador. interfaz
  • unificaron todas remota conseguir operaciones a utilizar CHPL_COMM_GET () macro
  • refactorizado renombrados las cabeceras / interfaz de comunicación
  • Testing System
  • mejorado enormemente las pruebas de rendimiento y capacidades gráficas
  • (véanse los comentarios en la parte delantera de start_test para la documentación)
  • mejoró el apoyo del sistema de pruebas para la limpieza después de sí
  • capacidad adicional para evitar el uso de cualquier indirecta de la entrada estándar
  • añade una opción para proporcionar una opción prediff de todo el sistema
  • capacidad de utilizar la función de tiempo de espera materna de un lanzador en lugar de Python
  • añadió
  • mejoró cómo el sistema de pruebas mata a una prueba de que el tiempo de espera
  • corrigió un fallo en el que los archivos .preexec sólo funcionaba si '.' estaba en su camino
  • Interno
  • añade una bandera compilador --break-en-id para los desarrolladores para localizar nodos AST crea
  • mejora de la organización del contenido del directorio / util
  • cambió la forma de los números de versión se calculan / muestra para los usuarios basados ​​en SVN
  • añadido soporte para tarea- / código del módulo-hilo específico
  • añade una capacidad de imprimir los condes AST asignados entre cada pasada
  • añade un nuevo alias gdb al compilador --gdb: 'loc' imprime ubicación
  • de un nodo de AST
  • mejorado en gran medida la aplicación de pragmas / banderas para evitar casos de error
  • eliminado varios casos de comparaciones de cadenas innecesarias en el compilador
  • Uso propenso a errores eliminado de CHPL_TASKS y CHPL_THREADS como símbolos de preprocesador
  • añadió documentación BestPractices para los desarrolladores (no incluido en la liberación)
  • cambió munging interna de '=' y '==' a 'ASSIGN "y" iguales ", respectivamente
  • añade una bandera desarrollador --print-id-on-error para imprimir Identificación AST de errores
  • mejorado el rigor de prototipo C ++ comprobar
  • añadió acuerdos contribuyentes externos al árbol SVN (no en la liberación)
  • añade una noción de tipos internos utilizados por el compilador, pero no el usuario

Programas parecidos

byacc
byacc

3 Jun 15

bpython
bpython

14 Apr 15

lizpop
lizpop

14 Apr 15

Genshi Compiler
Genshi Compiler

11 May 15

Comentarios a la Chapel

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!