Swift [1] es un lenguaje de programación implícitamente paralelo que permite escribir scripts que distribuyen la ejecución del programa a través de recursos informáticos distribuidos, [2] incluidos clústeres , nubes , cuadrículas y supercomputadoras . Las implementaciones Swift son software de código abierto bajo la licencia Apache , versión 2.0.
Paradigmas | Flujo de datos , distribuido , cuadrícula , concurrente , flujo de trabajo científico , secuencias de comandos |
---|---|
Desarrolladores | Universidad de Chicago , Laboratorio Nacional Argonne |
Apareció por primera vez | 2007 |
Lanzamiento estable | 0.96.2 / 5 de agosto de 2015 |
Disciplina de mecanografía | Fuerte |
Plataforma | Multiplataforma : Java |
SO | Multiplataforma : Java |
Licencia | Apache 2.0 |
Sitio web | swift-lang |
Influenciado por | |
Sintaxis C , programación funcional |
Características del idioma
Un script Swift [3] describe datos fuertemente tipados, componentes de aplicaciones, invocaciones de componentes de aplicaciones y las interrelaciones en el flujo de datos entre esas invocaciones. Las instrucciones del programa se ejecutarán automáticamente en paralelo a menos que exista una dependencia de datos entre ellas, con suficientes recursos informáticos. El diseño del lenguaje garantiza que los resultados de un cálculo sean deterministas, aunque el orden en el que se ejecutan las declaraciones puede variar. Swift incorpora un tipo de datos de archivo especial. Permite que los programas de línea de comandos se integren en un programa como funciones escritas. Esto permite a los programadores escribir programas que tratan los programas y archivos de la línea de comandos de la misma manera que las funciones y variables normales. Se utiliza un concepto de mapeo [4] para almacenar e intercambiar estructuras de datos complejas utilizando una estructura de sistema de archivos con archivos y directorios.
El envío rápido de tareas paralelas a una amplia gama de recursos se implementa a través de un mecanismo llamado envío de tareas de Coasters . [5] Una implementación del lenguaje basada en la interfaz de paso de mensajes [6] soporta tasas de ejecución de tareas muy altas (por ejemplo, 3000 tareas por segundo) [7] en grandes clústeres y supercomputadoras.
Ámbito de aplicaciones
Ejemplos de aplicación: [7] [8]
- Modelado energético
- Modelado climático
- Modelización económica
- Modelado de proteínas bioquímicas
- Análisis de imágenes por resonancia magnética (IRM) en neurociencia
- Modelado de estructuras de vidrio
Ver también
Referencias
- ^ "Página de inicio de Swift" . swift-lang.org . Consultado el 2 de junio de 2014 .
- ^ Wilde, Michael; Hategan, Mihael; Wozniak, Justin M .; Clifford, Ben; Katz, Daniel S .; Foster, Ian (2011). "Swift: un lenguaje para scripts distribuidos en paralelo" (PDF) . Computación paralela . 37 (9): 633–652. CiteSeerX 10.1.1.658.8990 . doi : 10.1016 / j.parco.2011.05.005 . Archivado desde el original (PDF) el 6 de junio de 2014.
- ^ Manual de referencia, capítulo 2
- ^ Manual de referencia, capítulo 3
- ^ Hategan, Mihael; Wozniak, Justin; Maheshwari, Ketan (2011). "Posavasos: aprovisionamiento uniforme de recursos y acceso para la informática científica en nubes y redes" (PDF) . Utilidad Proceedings y Cloud Computing .
- ^ Wozniak, Justin M., Timothy G. Armstrong, Michael Wilde, Daniel S. Katz, Ewing Lusk e Ian T. Foster. "Swift / T: composición de aplicaciones a gran escala a través del procesamiento de flujo de datos de memoria distribuida". En Cluster, Cloud and Grid Computing (CCGrid), 2013 13th IEEE / ACM International Symposium on, págs. 95-102. IEEE, 2013
- ^ a b Wilde, Michael; Foster, Ian; Iskra, Kamil; Beckman, Pete; Zhang, Zhao; Espinosa, Allan; Hategan, Mihael; Clifford, Ben; Raicu, Ioan (2009). "Scripting paralelo para aplicaciones en Petascale y más allá" (PDF) . Computadora . 42 (11): 50–60. doi : 10.1109 / mc.2009.365 . Archivado desde el original (PDF) el 12 de julio de 2014.
- ^ Estudios de caso en el sitio oficial
enlaces externos
- Página web oficial
- Manual de referencia