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.
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
SISTEMAS OPERATIVOS AVANZADOS
Tema: ParallelPython
ParallelPython
ParallelKnoppix
Alumnos:
• Muccela, José Daniel
Legajo: 20196
Profesor:
• Ing. Ricardo Adra
Facultad Regional Tucumán
Universidad Tecnológica Nacional
FRT - UTN -2-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Introducción a Python
¿Qué es Python?
Python es un lenguaje de programación creado por Guido van Rossum a
principios de los años 90 cuyo nombre está inspirado en el grupo de cómicos
ingleses “Monty Python”.
Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que favorece un
código legible.
Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente
tipado, multiplataforma y orientado a objetos.
Tipado dinámico
La característica de tipado dinámico se refiere a que no es necesario declarar
el tipo de dato que va a contener una determinada variable, sino que su tipo se
determinará en tiempo de ejecución según el tipo del valor al que se asigne, y el tipo
de 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 que
tiene, es necesario convertir de forma explícita dicha variable al nuevo tipo
previamente. Por ejemplo, si tenemos una variable que contiene un texto (variable
de 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 al
comportamiento 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 utilizamos
librerías específicas de cada plataforma nuestro programa podrá correr en todos
estos sistemas sin grandes cambios.
Orientado a objetos
La orientación a objetos es un paradigma de programación en el que los
conceptos del mundo real relevantes para nuestro problema se trasladan a clases y
objetos en nuestro programa.
La ejecución del Programa consiste en una serie de interacciones entre los
objetos.
FRT - UTN -3-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Python también permite la programación imperativa, programación funcional y
Programació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 de
librerías disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar
una 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 los
programas elaborados en Python parecen pseudocódigo. Por este motivo se trata
ademá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 para
aplicaciones 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 cada
vez 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-
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 Python
Existen 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-
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 enter
Pros y Contras de Python
Ventajas
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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Indentaciones
Python usa el retorno de carro para separar sentencias y los dos puntos y el
sangrado 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. Python
usa la indentación para iniciar y finalizar sentencias.
Python y otros lenguajes
Python puede trabajar en conjunto con una variedad de lenguajes y motores de base
de datos, entre los que se pueden mencionar:
Lamp (conjunto de aplicaciones compuesto por Linux+MySQL+Apache+Php ó
Perl ó Python ó Ruby)
FRT - UTN -7-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Python + PHP
Python + PostgreSQL
Python + MySQL
Punto “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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Implementaciones de Python
Python 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, una
consecuencia de este proyecto es que se minimizarán las diferencias entre
diferentes implementaciones como python, jython e ironpython, por ejemplo, y que
será 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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Python 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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Parallel Python
¿Qué es Parallel Python?
Parallel Python es un módulo de Python que proporciona el mecanismo para
la ejecución en paralelo de código Python en SMP (sistemas con múltiples
procesadores) y Clusters (ordenadores conectados vía red), es ligero, fácil para la
instalació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 de
categorías incluyendo los negocios, el análisis de datos y cálculos científicos. Esto
junto con la amplia disponibilidad de ordenadores SMP y de Clusters en el mercado
crea 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-
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 alta
velocidad, de tal forma que el conjunto es visto como un único ordenador, más
potente que los comunes de escritorio. De un cluster se espera que presente
combinaciones 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ómica
debido a su flexibilidad: pueden tener todos la misma configuración de hardware y
sistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturas
y sistemas operativos similares (clúster semi-homogéneo), o tener diferente
hardware y sistema operativo (clúster heterogéneo).
Para que un clúster funcione como tal, no basta solo con conectar entre sí los
ordenadores, sino que es necesario proveer un sistema de manejo del clúster, el
cual se encargue de interactuar con el usuario y los procesos que corren en él para
optimizar el funcionamiento.
Los nodos que conforman un cluster pueden ser simples ordenadores,
sistemas multi-procesador o estaciones de trabajo (Workstations). Cabe aclarar que
a la hora de diseñar un Cluster, los nodos deben tener características similares, es
decir, deben guardar cierta similitud de arquitectura y sistemas operativos, ya que si
se conforma un Cluster con Nodos totalmente heterogéneos (existe una diferencia
grande entre capacidad de procesadores, memoria, HD) será ineficiente debido a
que el middleware (El middleware es un software de conectividad que ofrece un
conjunto de servicios que hacen posible el funcionamiento de aplicaciones
distribuidas sobre plataformas heterogéneas.) delegara o asignara todos los
procesos al Nodo de mayor capacidad de Cómputo y solo distribuirá cuando este se
encuentre saturado de procesos; por eso es recomendable construir un grupo de
ordenadores los más similares posible.
Parallel Knoppix
Logo de
Parallel
Kanoppix
FRT - UTN -12-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
¿Qué es Parallel Knoppix?
Es una distribución Linux LiveCD basada en Knoppix, basada a su vez en
Debian, que viene preparada para armar un clúster de forma rápida y sin tantos
detalles de configuración.
ParallelKnoppix es una manera rápida y fácil de crear un cluster de
computación de alto rendimiento. Está diseñado para ser fácil de usar, siendo
también adecuado para trabajos profesionales. De hecho, se puede lograr un trabajo
más serio realizado con ParallelKnoppix usando todas sus alternativas, simplemente
porque se gana más tiempo libre en el uso del cluster, en lugar de tener que
instalarlo y administrarlo.
ParallelKnoppix solía basarse en la distribución Knoppix, por lo que
ParallelKnoppix nunca habría sido posible sin Knoppix como punto de partida.
ParallelKnoppix + Python
ParallelKnoppix facilita la programación en Python ya que tiene incorporadas
la mayoría de las librerías necesarias para ejecutar los programas escritos en este
lenguaje.
En este trabajo se muestran ejemplos de cómo ejecutar un programa escrito
en Python de manera muy sencilla. La idea que se persigue es facilitar al
desarrollador las tareas relacionadas a las configuraciones del sistema operativo y
sus 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 es
necesaria una configuración previa. Esta configuración está orientada a preparar el
cluster 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 que
deseamos ejecutar. Supongamos un sencillo programa; una Suma de números
primos. Al ejecutar el mismo usando un cluster, los resultados se obtienen en una
menor tiempo que ejecutando el programa en un solo host.
Ejemplos
Para ejecutar código Python en paralelo dentro de nuestro cluster, lo primero
es tener instalado Python y Parallel Python en el host principal y en todos los nodos
computacionales de nuestro cluster.
Hecho esto, y con nuestro cluster LAM/MPI "lambooted" ejecutaremos
ppserver.py en todos los nodos computacionales. Esto se puede hacer de forma
sencilla 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 computadoras
heterogéneas en una red. Con LAM/MPI, un dedicado conjunto de computadoras o
una infraestructura de cómputo en red , puede actuar como un simple recurso de
cómputo en paralelo.
FRT - UTN -13-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
El entorno LAM/MPI debe ser levantado o buteado antes de que cualquier
cliente o aplicación MPI puede correr. LAM usa un demonio sobre cada nodo para
control de procesos, control de meta entorno, y en algunos casos, paso de
mensajes. "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 se
siguieron para conseguir los resultados. Desde la apertura del sistema operativo
dentro de la máquina virtual hasta la ejecución del programa en python.
Ejecutando ParallelKnoppix
Primeramente vamos a ejecutar ParallelKanoppix dentro de la máquina
virtual. La imagen siguiente muestra la acción.
Una vez cargado el sistema vamos al menú de opciones, generalmente
ubicado 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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Aquí hacemos clic en la carpeta “Examples”. Se visualizarán las carpetas que
contiene.
A continuación hacemos clic en la carpeta “Python”.
FRT - UTN -15-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Luego hacemos clic en la carpeta “parallelpython”.
Lo que se puede ver son archivos de ejemplo para python, especialmente
creados para parallelpython.
Ahora vamos a abrir una Terminal (Konsole) en este mismo directorio como
se puede ver en la siguiente imagen.
FRT - UTN -16-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Como se puede ver, el prompt (knoppix@1[parallelpython]$) está listo para
que ejecutemos alguna acción relacionada con este directorio
(/home/knoppix/Examples/Python/parallelpython/). Entonces escribimos el nombre
del 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). Para
procesar lo solicitado por el programa el host necesitará casi 59 segundos para
ejecutar 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 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: 58.4337880611 s
Job execution statistics:
job count | % of all jobs | job time sum | time per job | job server
9 | 100.00 | 51.1004 | 5.677823 | local
Time elapsed since server creation 58.4621379375
FRT - UTN -17-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Ahora supongamos que tenemos un cluster compuesto del host principal más
cuatro nodos computacionales (estos nodos son Pentium 2); ahora le costará algo
menos 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ímite
es 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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Utilizando todos los nodos del cluster, la operación tardará uno 15 segundos
en 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.4670109749
Nota: En el CD adjunto se encuentran los archivos de ejemplo en formato de texto (*.txt) y los
archivos en formato python (*.py).
FRT - UTN -19-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
Referencias
Paginas Web visitadas
• Sitio oficial de Python. Información.
http://www.python.org/
Este sitio contiene toda la información disponible sobre el lenguaje, incluidos
los manuales oficiales y por supuesto las versiones disponibles del programa según
la plataforma donde se desee utilizar, listos para descargar.
• Sitio con información sobre LAMP.
http://www.noticiasdot.com/publicaciones/2004/0504/1105/noticias110504/noti
cias110504-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ón
en sí y después pasa a explicar la sintaxis de Python con montones de ejemplos. Es
el libro idóneo para aquel que no sabe programar ningún lenguaje y quiere empezar
con Python. El programador experto necesitará ojearlo por encima e ir mirando los
ejemplos 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 Rossum
Fred 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-
SISTEMAS OPERATIVOS AVANZADOS - Muccela, José Daniel
INDICE
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-