Parallel Python sistemas operativos avanzados

3,493 views

Published on

Trabajo que trata sobre el uso del sistema Operativo Parallel Python (Linux) para incrementar las velocidades de cálculo por ejemplo, haciendo uso del procesador de 2 o mas computadoras al mismo tiempo y tratándolas como si fuera un solo cerebro.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,493
On SlideShare
0
From Embeds
0
Number of Embeds
342
Actions
Shares
0
Downloads
58
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Parallel Python sistemas operativos avanzados

  1. 1. ParallelPython
  2. 2. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel SISTEMAS OPERATIVOS AVANZADOS Tema: ParallelPython ParallelPython ParallelKnoppixAlumnos: • Muccela, José Daniel Legajo: 20196Profesor: • Ing. Ricardo Adra Facultad Regional Tucumán Universidad Tecnológica Nacional FRT - UTN -2-
  3. 3. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielIntroducción a Python¿Qué es Python? Python es un lenguaje de programación creado por Guido van Rossum aprincipios de los años 90 cuyo nombre está inspirado en el grupo de cómicosingleses “Monty Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece uncódigo legible. Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertementetipado, multiplataforma y orientado a objetos.Tipado dinámico La característica de tipado dinámico se refiere a que no es necesario declararel tipo de dato que va a contener una determinada variable, sino que su tipo sedeterminará en tiempo de ejecución según el tipo del valor al que se asigne, y el tipode esta variable puede cambiar si se le asigna un valor de otro tipo.Fuertemente tipado No se permite tratar a una variable como si fuera de un tipo distinto al quetiene, es necesario convertir de forma explícita dicha variable al nuevo tipopreviamente. Por ejemplo, si tenemos una variable que contiene un texto (variablede tipo cadena o string) no podremos tratarla como un número (sumar la cadena “9”y el número 8). En otros lenguajes el tipo de la variable cambiaría para adaptarse alcomportamiento esperado, aunque esto es más propenso a errores.Multiplataforma El intérprete de Python está disponible en multitud de plataformas (UNIX,Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamoslibrerías específicas de cada plataforma nuestro programa podrá correr en todosestos sistemas sin grandes cambios.Orientado a objetos La orientación a objetos es un paradigma de programación en el que losconceptos del mundo real relevantes para nuestro problema se trasladan a clases yobjetos en nuestro programa. La ejecución del Programa consiste en una serie de interacciones entre losobjetos. FRT - UTN -3-
  4. 4. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Python también permite la programación imperativa, programación funcional yProgramación orientada a aspectos.¿Por Qué Python? Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple,clara y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad delibrerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollaruna aplicación en Python sea sencillo, muy rápido y, lo que es más importante,divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que losprogramas elaborados en Python parecen pseudocódigo. Por este motivo se trataademás de uno de los mejores lenguajes para comenzar a programar. Python no es adecuado sin embargo para la programación de bajo nivel o paraaplicaciones en las que el rendimiento sea crítico. Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA,Industrias Light & Magic, y todas las distribuciones Linux, en las que Python cadavez representa un tanto por ciento mayor de los programas disponibles.Instalación de Python Python viene preinstalado por defecto en la mayoría las distribuciones de Linux y en las últimas versiones de Mac OS, y está disponible como un paquete en todos los otros. Sin embargo hay ciertos rasgos que quisiéramos usar los cuales no están disponibles en el paquete de su distribución. Usted puede compilar la última versión de Python fácilmente desde su sitio Web. http://www.python.org/ En caso de que Python no este preinstalado y tampoco esté en los repositorios, usted puede conseguir los paquetes fácilmente para su propia distribución. Para comprobar si está instalado tiene que abrir una terminal y escribir python. Si está instalado se iniciará la consola interactiva de Python y obtendremos algo parecido a lo siguiente: Python 2.5.1 (r251:54863, May 2 2007, 16:56:35) [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type “help”, “copyright”, “credits” or “license” for more information. >>> FRT - UTN -4-
  5. 5. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel La primera línea nos indica la versión de Python que tenemos instalada. Al final podemos ver el prompt (>>>) que nos indica que el intérprete está esperando código del usuario. Podemos salir escribiendo exit(), o pulsando Control + D. Si no te muestra algo parecido no te preocupes, instalar Python es muy sencillo. Puedes descargar la versión correspondiente a tu sistema operativo desde la web de Python, en http://www.python.org/download/. Existen instaladores para Windows y Mac OS. Si utilizas Linux es muy probable que puedas instalarlo usando la herramienta de gestión de paquetes de tu distribución, aunque también podemos descargar la aplicación compilada desde la web de Python.Nota: Los ejemplos mostrados en este trabajo se realizaron utilizando la distribución Ubuntu de Linux.Dicha distribución se ejecutó usando una máquina virtual (en nuestro caso: VMware Workstation).Forma de Programar con PythonExisten dos formas de ejecutar código Python: Podemos escribir líneas de código en el intérprete y obtener una respuesta del intérprete para cada línea (sesión interactiva). Al escribir una línea de código y presionar Enter, el interprete de Python toma la línea y la evalúa. Escribimos nuestro código y luego Resultado de ejecutar presionamos enter el código FRT - UTN -5-
  6. 6. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Podemos escribir el código de un programa en un archivo de texto y ejecutarlo desde el Terminal de Linux. Llamamos al interprete Python y especificamos el programa a ejecutar y luego presionamos enterPros y Contras de PythonVentajas Desarrollo más rápido: Puedes escribir un programa, salvarlo y ejecutarlo. En un lenguaje compilado tienes que pasar por los pasos de compilar y ligar el software, lo cual puede ser un proceso lento. Multiplataforma: El mismo código funciona en cualquier arquitectura, la única condición es que disponga del intérprete del lenguaje. No es necesario compilar el código una vez para cada arquitectura.Inconvenientes Lentitud: Los programas interpretados son más lentos que los compilados. Sin embargo los programas interpretados suelen ser cortos, en los que la diferencia es inapreciable. FRT - UTN -6-
  7. 7. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielIndentaciones Python usa el retorno de carro para separar sentencias y los dos puntos y elsangrado para separar bloques de código. C++ y Java usan el punto y coma ( ; )para separar sentencias y las llaves ( { } ) para separar bloques de código. Pythonusa la indentación para iniciar y finalizar sentencias.Python y otros lenguajesPython puede trabajar en conjunto con una variedad de lenguajes y motores de basede datos, entre los que se pueden mencionar: Lamp (conjunto de aplicaciones compuesto por Linux+MySQL+Apache+Php ó Perl ó Python ó Ruby) FRT - UTN -7-
  8. 8. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Python + PHP Python + PostgreSQL Python + MySQLPunto “py” (.py) Hay un convenio por el que los ficheros que contienen programas Python tienen extensión py en su nombre. La extensión de un nombre de fichero son los caracteres del mismo que suceden al (último) punto. Un fichero llamado ejemplo.py tiene extensión py. La idea de las extensiones viene de antiguo y es un mero convenio. Puedes prescindir de el, pero no es conveniente. En entornos gráficos (como KDE, Gnome o Microsoft Windows) la extensión se utiliza para determinar qué icono va asociado al fichero y qué aplicación debe arrancarse para abrir el fichero al hacer clic (o doble clic) en el mismo. FRT - UTN -8-
  9. 9. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielImplementaciones de PythonPython posee diversas implementaciones: CPython es la implementación original, disponible para varias plataformas en el sitio oficial de Python. IronPython es una implementación del intérprete Python (cPython) escrita totalmente en C#. El proyecto trata de seguir al pie de la letra el lenguaje Python, como implementación de Python que es. Esto hace que cualquier programa escrito en Python pueda ser interpretado con IronPython, con las ventajas añadidas de poder usar las bibliotecas de la plataforma .NET y poder compilar el código a bytecode Stackless Python es la variante de CPython que trata de no usar el stack de C (www.stackless.com) Jython (Python en Java) es un lenguaje de programación de alto nivel, dinámico y orientado a objetos basado en Python e implementado en Java (100%), su antecesor fue JPython, Jython al igual que Python es un proyecto de código libre. El lenguaje de programación Jython funciona prácticamente igual que el lenguaje Python, en su versión 2.2. Pippy es la implementación realizada para Palm (pippy.sourceforge.net) PyPy es Python totalmente escrito en Python (codespeak.net/pypy) El proyecto PyPy pretende producir una versión optimizada y más rápida de Python. De acuerdo a lo que se ha señalado en algunas listas de correo, unaconsecuencia de este proyecto es que se minimizarán las diferencias entrediferentes implementaciones como python, jython e ironpython, por ejemplo, y queserá más sencillo usar python en sistemas empotrados como móviles y PDAs.Sistema de objetos En Python, todo es un objeto (incluso las clases). Las clases, al ser objetos, son instancias de una metaclase. Python además soporta herencia múltiple y polimorfismo y demás características de la orientación a objetos. FRT - UTN -9-
  10. 10. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielPython y sus librerías El intérprete de Python y su extensa biblioteca estándar están disponibles libremente, en forma de fuentes o ejecutables, para las plataformas más importantes, en la sede web de Python, http://www.python.org, y se pueden distribuir libremente. La misma sede contiene también distribuciones y direcciones de muchos módulos, programas y herramientas Python de terceras partes, además de documentación adicional. Python permite dividir un programa en módulos reutilizables desde otros programas en Python. Viene con una gran colección de módulos estándar que puedes utilizar como base de nuestros programas (o como ejemplos para empezar a aprender Python). También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, ‘sockets’ y hasta interfaces gráficas con el usuario, como Tk.Python y sus módulos numerical python msilib pygtk pkgutil pyqt pybench tkinter socket wxpython spwd email tarfile doctest zipfile mailbox zlib codecs collections cProfile ………Ejemplo: Usando el editor y ejecutando desde Terminal: FRT - UTN -10-
  11. 11. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielParallel Python¿Qué es Parallel Python? Parallel Python es un módulo de Python que proporciona el mecanismo parala ejecución en paralelo de código Python en SMP (sistemas con múltiplesprocesadores) y Clusters (ordenadores conectados vía red), es ligero, fácil para lainstalación y tiene la posibilidad de integrarse con otro software creado en Python. Hoy en día el software escrito en Python encuentra una amplia gama decategorías incluyendo los negocios, el análisis de datos y cálculos científicos. Estojunto con la amplia disponibilidad de ordenadores SMP y de Clusters en el mercadocrea la demanda para la ejecución paralela de código Python.Características 1. Ejecución paralela de Python en SMP (Sistema de MultiProcesamiento) y Clusters. 2. Fácil de entender y poner en práctica la técnica. 3. Detección automática de la configuración óptima. 4. Asignación de procesos dinámicos (el número de procesos trabajando puede ser cambiado en el tiempo de ejecución). 5. Equilibrio de carga dinámico. 6. Autentificación basada en SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro; es un conjunto de funciones hash diseñado por la Agencia de Seguridad Nacional de los Estados Unidos) para conexiones de red. 7. Fácil portabilidad para Windows, Linux, Unix. 8. Open source (código abierto). FRT - UTN -11-
  12. 12. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel¿Qué es un clúster? Clúster es un grupo de múltiples ordenadores unidos mediante una red de altavelocidad, de tal forma que el conjunto es visto como un único ordenador, máspotente que los comunes de escritorio. De un cluster se espera que presentecombinaciones de los siguientes servicios: • Alto rendimiento (High Performance) • Alta disponibilidad (High Availability) • Equilibrio de carga (Load Balancing) • Escalabilidad (Scalability) La construcción de los ordenadores del cluster es más fácil y económicadebido a su flexibilidad: pueden tener todos la misma configuración de hardware ysistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturasy sistemas operativos similares (clúster semi-homogéneo), o tener diferentehardware y sistema operativo (clúster heterogéneo). Para que un clúster funcione como tal, no basta solo con conectar entre sí losordenadores, sino que es necesario proveer un sistema de manejo del clúster, elcual se encargue de interactuar con el usuario y los procesos que corren en él paraoptimizar el funcionamiento. Los nodos que conforman un cluster pueden ser simples ordenadores,sistemas multi-procesador o estaciones de trabajo (Workstations). Cabe aclarar quea la hora de diseñar un Cluster, los nodos deben tener características similares, esdecir, deben guardar cierta similitud de arquitectura y sistemas operativos, ya que sise conforma un Cluster con Nodos totalmente heterogéneos (existe una diferenciagrande entre capacidad de procesadores, memoria, HD) será ineficiente debido aque el middleware (El middleware es un software de conectividad que ofrece unconjunto de servicios que hacen posible el funcionamiento de aplicacionesdistribuidas sobre plataformas heterogéneas.) delegara o asignara todos losprocesos al Nodo de mayor capacidad de Cómputo y solo distribuirá cuando este seencuentre saturado de procesos; por eso es recomendable construir un grupo deordenadores los más similares posible.Parallel Knoppix Logo de Parallel Kanoppix FRT - UTN -12-
  13. 13. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel¿Qué es Parallel Knoppix? Es una distribución Linux LiveCD basada en Knoppix, basada a su vez enDebian, que viene preparada para armar un clúster de forma rápida y sin tantosdetalles de configuración. ParallelKnoppix es una manera rápida y fácil de crear un cluster decomputación de alto rendimiento. Está diseñado para ser fácil de usar, siendotambién adecuado para trabajos profesionales. De hecho, se puede lograr un trabajomás serio realizado con ParallelKnoppix usando todas sus alternativas, simplementeporque se gana más tiempo libre en el uso del cluster, en lugar de tener queinstalarlo y administrarlo. ParallelKnoppix solía basarse en la distribución Knoppix, por lo queParallelKnoppix nunca habría sido posible sin Knoppix como punto de partida.ParallelKnoppix + Python ParallelKnoppix facilita la programación en Python ya que tiene incorporadasla mayoría de las librerías necesarias para ejecutar los programas escritos en estelenguaje. En este trabajo se muestran ejemplos de cómo ejecutar un programa escritoen Python de manera muy sencilla. La idea que se persigue es facilitar aldesarrollador las tareas relacionadas a las configuraciones del sistema operativo ysus aplicaciones para volcar todo el esfuerzo en la creación de las líneas de código. Para poder ejecutar nuestros programas de python en ParallelKnoppix esnecesaria una configuración previa. Esta configuración está orientada a preparar elcluster o SMP para visualizar las virtudes de la programación en paralelo. Esto es,configurar la cantidad de host disponibles para trabajar con el programa quedeseamos ejecutar. Supongamos un sencillo programa; una Suma de númerosprimos. Al ejecutar el mismo usando un cluster, los resultados se obtienen en unamenor tiempo que ejecutando el programa en un solo host.Ejemplos Para ejecutar código Python en paralelo dentro de nuestro cluster, lo primeroes tener instalado Python y Parallel Python en el host principal y en todos los nodoscomputacionales de nuestro cluster. Hecho esto, y con nuestro cluster LAM/MPI "lambooted" ejecutaremosppserver.py en todos los nodos computacionales. Esto se puede hacer de formasencilla desde el frontend. LAM (Local Area Multicomputer) es un ambiente de programación de MPI(interfaz de paso de mensajes) y un sistema de desarrollo para las computadorasheterogéneas en una red. Con LAM/MPI, un dedicado conjunto de computadoras ouna infraestructura de cómputo en red , puede actuar como un simple recurso decómputo en paralelo. FRT - UTN -13-
  14. 14. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel El entorno LAM/MPI debe ser levantado o buteado antes de que cualquiercliente o aplicación MPI puede correr. LAM usa un demonio sobre cada nodo paracontrol de procesos, control de meta entorno, y en algunos casos, paso demensajes. "Butear LAM" se refiere al acto de lanzar ese demonio sobre cada nodo.El comando lamboot es el usado para este fin. En los ejemplos que se muestran a continuación se explican los pasos que sesiguieron para conseguir los resultados. Desde la apertura del sistema operativodentro de la máquina virtual hasta la ejecución del programa en python.Ejecutando ParallelKnoppix Primeramente vamos a ejecutar ParallelKanoppix dentro de la máquinavirtual. La imagen siguiente muestra la acción. Una vez cargado el sistema vamos al menú de opciones, generalmenteubicado de manera oculta en el sector inferior de la pantalla. Clic aquí A continuación se abrirá el explorador Konqueror mostrando el directorio“Home”. FRT - UTN -14-
  15. 15. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Aquí hacemos clic en la carpeta “Examples”. Se visualizarán las carpetas quecontiene. A continuación hacemos clic en la carpeta “Python”. FRT - UTN -15-
  16. 16. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Luego hacemos clic en la carpeta “parallelpython”. Lo que se puede ver son archivos de ejemplo para python, especialmentecreados para parallelpython. Ahora vamos a abrir una Terminal (Konsole) en este mismo directorio comose puede ver en la siguiente imagen. FRT - UTN -16-
  17. 17. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Como se puede ver, el prompt (knoppix@1[parallelpython]$) está listo paraque ejecutemos alguna acción relacionada con este directorio(/home/knoppix/Examples/Python/parallelpython/). Entonces escribimos el nombredel ejemplo antecediendo la palabra (comando) python.• Ejemplo 1: Suma de números primos Empezaremos con la suma de números primos hasta 100700(sum_primes.py), lo ejecutaremos usando solo el host principal (un Pentium 3). Paraprocesar lo solicitado por el programa el host necesitará casi 59 segundos paraejecutar todo el proceso. Veamos el resultado de la ejecución del programa.Usage: python sum_primes.py [ncpus] [ncpus] - the number of workers to run in parallel, if omitted it will be set to the number of processors in the systemStarting pp with 1 workersSum of primes below 100 is 1060Sum of primes below 100000 is 454396537Sum of primes below 100100 is 454996777Sum of primes below 100200 is 455898156Sum of primes below 100300 is 456700218Sum of primes below 100400 is 457603451Sum of primes below 100500 is 458407033Sum of primes below 100600 is 459412387Sum of primes below 100700 is 460217613Time elapsed: 58.4337880611 sJob execution statistics: job count | % of all jobs | job time sum | time per job | job server 9 | 100.00 | 51.1004 | 5.677823 | localTime elapsed since server creation 58.4621379375 FRT - UTN -17-
  18. 18. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Ahora supongamos que tenemos un cluster compuesto del host principal máscuatro nodos computacionales (estos nodos son Pentium 2); ahora le costará algomenos de 19 segundos ejecutar el proceso, como se muestra a continuación: Usage: python sum_primes.py [ncpus] [ncpus] - the number of workers to run in parallel, if omitted it will be set to the number of processors in the system Starting pp with 1 workers Sum of primes below 100 is 1060 Sum of primes below 100000 is 454396537 Sum of primes below 100100 is 454996777 Sum of primes below 100200 is 455898156 Sum of primes below 100300 is 456700218 Sum of primes below 100400 is 457603451 Sum of primes below 100500 is 458407033 Sum of primes below 100600 is 459412387 Sum of primes below 100700 is 460217613 Time elapsed: 18.7660019398 s Job execution statistics: job count | % of all jobs | job time sum | time per job | job server 2 | 22.22 | 18.3807 | 9.190361 | 10.11.12.2:60000 2 | 22.22 | 18.5409 | 9.270460 | 10.11.12.4:60000 1 | 11.11 | 9.1975 | 9.197520 | 10.11.12.5:60000 3 | 33.33 | 14.6504 | 4.883458 | local 1 | 11.11 | 9.2648 | 9.264778 | 10.11.12.3:60000 Time elapsed since server creation 18.7660019398• Ejemplo 2: Callbacks Este programa demuestra el cómputo paralelo usando callbacks. El programa calculará la suma parcial 1-1/2+1/3-1/4+1/5-1/6+... (En el límitees ln(2)). Esto le costará al host principal unos 283 segundos: Usage: python callback.py [ncpus] [ncpus] - the number of workers to run in parallel, if omitted it will be set to the number of processors in the system Starting pp with 1 workers Partial sum is 0.69314720556 | diff = -2.50000439239e-08 Job execution statistics: job count | % of all jobs | job time sum | time per job | job server 128 | 100.00 | 283.1016 | 2.211731 | local Time elapsed since server creation 283.22504282 FRT - UTN -18-
  19. 19. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel Utilizando todos los nodos del cluster, la operación tardará uno 15 segundosen hacer el cálculo. Usage: python callback.py [ncpus] [ncpus] - the number of workers to run in parallel, if omitted it will be set to the number of processors in the system Starting pp with 1 workers Partial sum is 0.69314720556 | diff = -2.50000439239e-08 Job execution statistics: job count | % of all jobs | job time sum | time per job | job server 26 | 20.31 | 14.5316 | 0.558909 | 10.11.12.2:60000 27 | 21.09 | 15.0113 | 0.555973 | 10.11.12.4:60000 26 | 20.31 | 14.5897 | 0.561143 | 10.11.12.5:60000 23 | 17.97 | 14.2961 | 0.621569 | local 26 | 20.31 | 14.5336 | 0.558986 | 10.11.12.3:60000 Time elapsed since server creation 15.4670109749Nota: En el CD adjunto se encuentran los archivos de ejemplo en formato de texto (*.txt) y losarchivos en formato python (*.py). FRT - UTN -19-
  20. 20. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielReferenciasPaginas Web visitadas• Sitio oficial de Python. Información. http://www.python.org/ Este sitio contiene toda la información disponible sobre el lenguaje, incluidoslos manuales oficiales y por supuesto las versiones disponibles del programa segúnla plataforma donde se desee utilizar, listos para descargar.• Sitio con información sobre LAMP. http://www.noticiasdot.com/publicaciones/2004/0504/1105/noticias110504/noticias110504-6.htm• Sitio para Principiantes http://www.blueportal.org/modules.php?name=News&file=article&sid=5843 Se trata de un link a un libro empieza por lo más básico de la programaciónen sí y después pasa a explicar la sintaxis de Python con montones de ejemplos. Esel libro idóneo para aquel que no sabe programar ningún lenguaje y quiere empezarcon Python. El programador experto necesitará ojearlo por encima e ir mirando losejemplos para ir viendo como se estructura y cuál es la sintaxis de Python.• Sitio desde donde se descargó la distribución ParallelKanoppix-2.9. http://pareto.uab.es/mcreel/PelicanHPC/download/• Sitio con Información acerca de ParallelKnoppix http://www.icewalkers.com/Linux/Software/527410/ParallelKnoppix.html• Sitio oficial de ParallelPython. Información y ejemplos. http://www.parallelpython.com/Documentación Consultada• Python - Reference manual (2004). En inglés. Por Guido van RossumFred L. Drake, Jr. Descargado del sitio oficial de Python. http://www.python.org/• Manual Python. En español. Descargado del sitio oficial de Python. http://www.python.org/• Python para todos. Por Raúl González Duque http://mundogeek.net/tutorial-python/• ParallelKnoppix Tutorial http://pareto.uab.es/mcreel/ParallelKnoppix/Tutorial/ FRT - UTN -20-
  21. 21. SISTEMAS OPERATIVOS AVANZADOS - Muccela, José DanielINDICE Página Contenido 3 Introducción a Python - ¿Qué es Python? 3 Tipado dinámico 3 Fuertemente tipado 3 Multiplataforma 3 Orientado a objetos 4 ¿Por Qué Python? 4 Instalación de Python 5 Forma de Programar con Python 6 Pros y Contras de Python 7 Indentaciones 7 Python y otros lenguajes 8 Punto “py” (.py) 9 Implementaciones de Python 9 Sistema de objetos 10 Python y sus librerías 10 Python y sus módulos 10 Ejemplo de programa en Python 11 Parallel Python - ¿Qué es Parallel Python? 11 Características de ParallelPython 12 ¿Qué es un clúster? 12 Parallel Knoppix 13 ¿Qué es Parallel Knoppix? 13 ParallelKnoppix + Python 13 Ejemplos - pasos previos 14 Ejecutando ParallelKnoppix 17 Ejemplo 1: Suma de números primos 18 Ejemplo 2: Callbacks 20 Referencias 21 Indice FRT - UTN -21-

×