|
Lic.
Ramiro Lazarte
Como es un sitio sobre el que hacer científico y otros trabajos
de interés que sé esta realizando y se realizaron
en Linux. Voy procurar a describir las causas que me indujeron a
utilizar el Sistema Operativo Linux. En este ensayo trato de identificar
las facetas que uno puede encontrar en el estudio y aplicación
de Algoritmos Genéticos Paralelos bajo Linux.
Aunque el mundo en el que nos movemos es paralelo, y nuestra forma
de vivir también los es, por ejemplo mientras escucho
un tema musical, gusto de un dulce, y al mismo tiempo leo un libro,
el arte de programar es tradicionalmente secuencial.
Para el inicio
de este cometido, trataremos de introducirnos en este mundo maravilloso
de la investigación, más precisamente en el área
de la Inteligencia Artificial.
Bueno como ya
sabemos, existe una elevada demanda de computadores rápidos
y eficaces en muchas áreas científicas, técnicas,
de recursos energéticos, médicas, militares, de inteligencia
artificial y de investigación básica. En estas áreas
de aplicaciones se efectúan con frecuencia computaciones
a gran escala.
En la actualidad
los computadores están invadiendo todos los campos del conocimiento.
Cada vez más, los procesos industriales, científicos
de todo tipo son controlados por los computadores, permitiendo que
los hombres puedan dedicar a tareas más creativas. Para que
exista esta situación de sustituir al hombre por la máquina
sea eficaz, la máquina debe tener un tiempo de respuesta
muy rápido, es decir poseer una gran capacidad de procesamiento
de la información.
 |
Pero como los
computadores de hoy pueden llegar a tener un alto grado de conciencia
(capacidad de tratar conocimientos), pero están lejos de
ser inteligentes. La inteligencia es difícil de crear; su
procesamiento lo es aun más. Los computadores de hoy son
muy rápidos y obedientes y disponen de muchas celdas de memoria
confiables para el procesamiento de datos-información-conocimiento.
Pero ninguno de los computadores existentes aun se puede considerar
como un sistema pensante realmente inteligente. Los computadores
son todavía incapaces de comunicarse con seres humanos utilizando
formas naturales como lenguaje hablados o escritos. Estamos en una
era en la que se promociona el uso de los computadores no solo para
procesamiento convencional de datos-información, sino también
para la construcción de sistemas factibles de conocimiento-inteligencia
que hagan avanzar a la civilización humana.
 |
Por ejemplo, se
vio en que una batería de satélites en el espacio exterior
recoge un rango 10^10 bits por segundo, estos datos representan información
del tiempo meteorológico, la polución, la agricultura
y recursos naturales, para que esta información sea útil
necesita ser procesada con una velocidad de al menos 1013 operaciones
por segundo.
Otro ejemplo que vemos ahora, en un equipo de cirujanos se desea ver
en un dispositivo especial una imagen tridimensional del cuerpo de
un paciente en espera para la cirugía. Necesitan rotar la imagen
para obtener una sección transversal de un órgano, observándolo
en detalle y ejecutar una cirugía simulada, todo ello sin tocar
al paciente, necesitarían una velocidad de procesamiento mínima
de 1015 operaciones por segundo para realizar eficazmente dichos trabajos.
 |
Estos ejemplos
representan aplicaciones donde se necesitan computadores extremadamente
rápidos, procesamiento de grandes volúmenes de datos
en un pequeño margen de tiempo, necesidades de simulación
y visualización de procesos más rápidos, como
anteriormente mencionamos, para procesar grandes cantidades de datos
o para permitir un gran número de cálculos muy rápidos
se deben desarrollar métodos para la resolución de problemas
de optimización.
Los incrementos en velocidad y fiabilidad de los dispositivos y las
reducciones en el costo, tamaño físico del hardware
han potenciado enormemente el rendimiento de los computadores. Sin
embargo, el hecho de disponer de mejores dispositivos no es el único
factor que contribuye a elevar el rendimiento.
Desde que Von Newmann
propuso el concepto de programa almacenado, el diseño de un
computador ha sido reconocido como algo más que un problema
de organización hardware. Un sistema informático moderno
es realmente una composición de elementos tales como procesadores,
memorias, unidades funcionales, redes de interconexión, compiladores,
sistemas operativos, dispositivos periféricos, canales de comunicación
y bancos de bases de datos.
Para diseñar
un sistema informático potente y de costo razonable, y para
idear programas eficaces que resuelven un problema computacional,
deben comprenderse previamente las estructuras hardware y software
subyacentes y los algoritmos de computación que vayan a ser
implementados en la maquina mediante lenguajes de programación
orientados al usuario.
Las ideas para resolver problemas del mundo real, deben procurar
enmarcarse en la idea del paralelismo, en el que la tarea se descompone
en una serie de procesos, y que estos procesos se realicen simultáneamente,
el tiempo que tardaría dicha tarea puede reducirse significativamente.
Ya que la idea del paralelismo no es nuevo y ha adoptado muchas
formas, pero para alcanzar una solución más razonable
y eficaz sea ha tomado una metodología de la inteligencia
artificial.
La evolución de la biología ha sido una fuente de
inspiración para realizar este trabajo, en efecto la evolución
de los algoritmos genéticos(AGs) es el método
de búsqueda que se empleo, para un enorme número de
posibles soluciones, y que a través de estos AGs se pudo
emular la Teoría de Islas que mediante la selección
natural de la competencia, la migración y la sucesión,
se pueden proponer y construir AG Paralelos (AGPs) obteniendo así
métodos de paralelización de un modo muy natural en
el que la comunicación entre poblaciones de islas evolucionen
paralelamente sobre un o mas PCs y así coadyuvar a mejorar
las soluciones de los problemas.
Por lo tanto,
en el moderno paradigma que queremos describir esta experiencia,
la computación paralela se puede realizar en toda su potencia.
Empleando los recursos del hardware y software debidamente, para
que estos se comuniquen y actúen en la resolución
estos problemas más rápidamente.
En un principio
para desarrollar el paradigma que se había emprendido, fue
la de tomar todos los recursos que se disponían en ese instante,
para alcanzar dicho cometido en ese mundo fascinante de la investigación.
Entonces la
investigación toma el rumbo de la investigación científica
básica, o sea empleando teorías, experimentos y cálculos
para resolver las computaciones numéricamente, pero estos
cálculos numéricos ayudarían a sugerir nuevas
teorías, así con el empleo de la ciencia experimental
a través de la computación se pudo modelar procesos
que en una primera instancia eran difíciles de obtenerlos,
ya que no se contaba con supercomputadores (mainframes, etc) para
tener una opción de mejorar la ejecución del paralelismo
y realizar la experiencia de los AGPs, pero surgió la idea
de utilizar la simulación de procesos paralelos o sea paralelizar.
Con el empleo
de las PCs y las características que cada una de ellas poseían,
se pensó en simular los procesos paralelos de los AGs y así
se pudo emular las características de la teoría de
islas, esta simulación de procesos por computador es mucho
más barata con respecto a los supercomputadores que tienen
un alto costo, además se puede obtener la rapidez aunque
no como los supercomputadores, ya que, las posibilidades de cálculo
en las PCs, solo estaban limitadas por la velocidad y la capacidad
de memoria. pero ello lo veremos luego, con más detalle.
Sea recapitulado
brevemente la introducción de AGPs que luego describiremos
con detalle, existen muchas cosas más en el tapete, y estaré
gustoso en desojar este conocimiento y la importancia del uso de
este fascinante S.O. Linux.
|