Capacidad de procesamiento del compilador Python para el Sistema Operativo Windows y Linux Stiven Unsihuay, Paulo Pereira, Norma León [email protected], [email protected], [email protected] Resumen El presente trabajo consiste en medir la capacidad de procesamiento de archivos científicos en computadoras personales con sistemas operativos Windows, Linux y con el lenguaje de programación Python, para identificar los tiempos de respuesta de cada plataforma y conocer el peso de un archivo que necesariamente debe procesarse en un clúster. El método empleado tiene cuatro etapas, preparación de archivos de texto con pesos diferentes, configuración de las Pc con ambos sistemas operativos, construcción del programa para el procesamiento de los archivos y finalmente se hizo diferentes pruebas para identificar los parámetros de capacidad de las computadoras para procesar los archivos en sistemas operativos Windows y Linux, midiéndose el tiempo de procesamiento por cada archivo en cada sistema operativo identificando los límites de los pesos de los archivos que pueden ser procesados en una computadora personal o en un clúster de computadoras. Palabras Clave: archivo, capacidad, clúster, medir, procesamiento. Introducción Los datos científicos hoy en día necesitan sistemas computacionales más poderosos, por la dimensión de la data, los científicos de cualquier rama necesitan de la programación paralela para la solución de sus problemas. Para solventar estas necesidades se requiere investigar y desarrollar sistemas computacionales automatizados avanzados con calidad de eficiencia y objetividad. Por tal motivo la USMP ha implementado un clúster de computadoras (Zagonzini, Pablo, & Storti, 2004) a fin de soportar las necesidades científicas de los investigadores. De tal forma se está implementando pruebas en computadoras personales para el procesamiento de archivos .vcf. Por lo que identificar el tamaño de los archivos que pueden procesarse en las computadoras personales fue uno de los principales problemas que se tuvo que resolver. La información científica generalmente viene en diversos formatos, para este trabajo se ha usado el formato estándar de intercambio de información personal, específicamente tarjetas personales electrónicas .vcf, (Consorcio Versit, 1996). Las computadoras personales con las que se cuenta en la investigación son Intel(R) Core (TM)2 Quad CPU con 4.00 GB de RAM, además se tiene un clúster de diez nodos de computadoras personales Intel core i7 con 16Gb de RAM. Se ha trabajado con el lenguaje de programación Python, el cual es un lenguaje de programación interpretado, interactivo y orientado a objetos (Challenger-Pérez, Ivet, Díaz-Ricardo, & Roberto, 2014) este lenguaje de programación combina el soporte de módulos, clases, excepciones y tipos de datos de muy alto nivel con una sintaxis muy clara. Su librería estándar provee acceso al sistema operativo, librerías graficas e Internet. Su implementación es portable para Linux, Mac y Windows, y es libre para uso, modificación y redistribución. Actualmente Python es usado por grandes centros de investigación como el CERN (Organización Europea para la Investigación Nuclear) y por parte de científicos en ramas como la Bioinformática, Neurofisiología, Física, Matemáticas entre otros debido a la disponibilidad de librerías de visualización, procesamiento de señales, estadísticas, álgebra, entre otros, de fácil utilización y que cuentan con muy buena documentación (Dalcin, Storti, & Paz, 2010). Método Preparación de archivos: se prepararon diversos archivos .vcf con diferentes pesos: Pequeños (10 Mb), medianos (38 Mb) y grandes (58 Mb). Configuración de las computadoras personales: se instaló computadoras con Windows 8.1 con NetBeans IDE 8.0 y Linux Centos 6.5 con NetBeans IDE 6.5. Construcción del programa para el procesamiento de los archivos en lenguaje Python 2.6.6 para Linux Centos y 2.7.8 para Windows 8.1 Pruebas, se realizaron diferentes pruebas para identificar los parámetros de capacidad de cómputo. Ilustración 1 Archivo de prueba .vcf Fuente Propia Ilustración 2 Código para Lectura de Archivos en Python Fuente Propia Ilustración 3 Procesamiento de Archivo de prueba Fuente Propia Lectura de Archivos Pequeños Se logró leer un archivo .vcf de peso 9.6 Mb. en Python 2.7.8 con Netbeans IDE 8.0 para Windows 8.1, ya que Netbeans IDE 8.0 tiene la capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 9.58 Mb Tiempo = 7.44 segundos Se logró leer un archivo .vcf de peso 9.58 Mb. en Python 2.6.6 con Netbeans IDE 6.5 para Centos 6.5 distribución de Linux, ya que Netbeans IDE 6.5 tiene la capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 9.6 Mib Tiempo = 5.61 segundos Se logró leer un archivo .vcf con Python mediante Sistemas Operativos Windows 8.1 y Linux Centos 6.5. Windows 8.1 y Python 2.7.8 Linux – Centos 6.5 y Python 2.6.6 x Peso = 9.58 MB Peso = 9.6 MiB Tiempo = 42.8 segundos Tiempo= 18.81 segundos Se logró leer un archivo .vcf de peso de 9.58 Mb, con Excel 2013 para el sistema operativo Windows 8.1 y con Gedit , para Linux Centos 6.5. Windows 8.1 Linux – Centos 6.5 Peso = 9.58 Mb Peso = 9,6 MiB Tiempo = 4.28 segundos Tiempo = 2.20 segundos Lectura de Archivos Medianos Se logró leer un archivo .vcf de peso 38.3 Mb. en Python 2.7.8 para Netbeans IDE 8.0 y Windows 8.1, ya que Netbeans IDE 8.0 tiene una capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 38.3 Mb Tiempo = 17.64 segundos Se logró leer un archivo .vcf de peso 38.3 Mb. en Python 2.6.6 con Netbeans IDE 6.5 para Centos 6.5 distribución de Linux, ya que Netbeans IDE 6.5 tiene la capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 38.3 Mib Tiempo = 13.52 segundos Se logró leer un archivo .vcf con Python mediante Sistemas Operativos Windows 8.1 y Linux Centos 6.5. Windows 8.1 y Python 2.7.8 Linux – Centos 6.5 y Python 2.6.6 x Peso = 38.3 Mb Peso = 38.3 Mib Tiempo = 110.86 segundos Tiempo = 74.49 segundos Se logró leer un archivo .vcf de peso de 38.3 Mb. directamente con los Sistemas Operativos Windows 8.1 y Linux Centos 6.5. Windows 8.1 Linux – Centos 6.5 Peso = 38.3 Mb Peso = 38.3 MiB Tiempo = 12.98 segundos Tiempo = 7.37 segundos Lectura de Archivos Capacidad Máxima Se logró leer un archivo .vcf de peso 58.3 Mb. en Python 2.7.8 para Netbeans IDE 8.0 y Windows 8.1, ya que Netbeans IDE 8.0 tiene una capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 58.3 Mb Tiempo = 26.74 segundos Se logró leer un archivo .vcf de peso 58.3 Mb. en Python 2.6.6 con Netbeans IDE 6.5 para Centos 6.5 distribución de Linux, ya que Netbeans IDE 6.5 tiene la capacidad de 58.3 Mb de procesamiento de lectura como máximo. Peso = 58.3 Mib Tiempo = 22.58 segundos Se logró leer un archivo .vcf con Python mediante Sistemas Operativos Windows 8.1 y Linux Centos 6.5. Windows 8.1 y Python 2.7.8 Peso = 58.3 MB Tiempo= 279.6 segundos Linux – Centos 6.5 y Python 2.6.6 x Peso = 58.3 MiB Tiempo= 112.58 segundos Se logró leer un archivo .vcf de peso de 58.3 Mb. directamente con los Sistemas Operativos Windows 8.1 y Linux Centos 6.5. Windows 8.1 Linux – Centos 6.5 Peso = 58.3 MB Peso = 58.3 MiB Tiempo = 19.86 segundos Tiempo = 9.42 segundos 300 250 200 150 100 50 0 A. pequeños A. Medianos A. Grandes Python/NetBeans/W8 Python/NetBeans/Centos Python/Windows Python/Linux SO. Linux Centos SO. Windows Ilustración 4 Tiempo en seg. de procesamiento de archivos .vcf Fuente Propia Lectura de archivos mayores .vcf mediante la consola del sistema operativo y Python sin el uso de un IDE. Windows 8.1 Linux – Centos 6.5 Peso = 117 MB Peso =117.1 MiB Tiempo= 358.6 segundos Tiempo= 225.5 segundos Peso = 1.02 GB Tiempo= 3612 segundos Peso = 1.0 GiB Tiempo= 2038.89 segundos Conclusión Se puede observar en el grafico “Tiempo en segundos de procesamiento de archivos .vcf”, que los archivos .vcf que se abren con Phyton directamente desde la consola del sistema operativo ya sea Linux o Windows consumen más tiempo en su lectura. Los archivos que son procesados con Python sobre el IDE Netbeans en cualquiera de los sistemas operativos consumen menos tiempo en su lectura que los primeros. Los archivos que son procesados directamente con el sistema operativo y un software de lectura son los que consumen muchísimo menos tiempo en su procesamiento. Para archivos con capacidad mayor a 58.3 MB el tiempo de procesamiento crece de manera exponencial, por lo que se recomienda su procesamiento en un clúster y su código debe realizarse con programación paralela (Almeida, Gimenez, Mantas, & Vidal, 2007) para una óptima lectura. Bibliografía Almeida, F., Gimenez, D., Mantas, J., & Vidal, A. (2007). Introducción a la programación Paralela. Thomson Paraninfo. Challenger-Pérez, Ivet, Díaz-Ricardo, Y., & Roberto, B.-G. (2014). El lenguaje de programación Python/The programming language Python. la Habana. Consorcio Versit. (1996). La tarjeta de presentación electrónica. Obtenido de http://www.imc.org/pdi/vcard-21.txt Dalcin, L., Storti, M., & Paz, R. (2010). DESARROLLO DE APLICACIONES PARALELAS EN PYTHON. Santa Fé. Zagonzini, V., Pablo, S., & Storti, m. (2004). Resolución de grandes sistemas de ecuaciones en un cluster de computadores. Santa Fe.