You are on page 1of 6

MINESIGHT Y LA TECNOLOGA INFORMTICA DE LTIMA GENERACIN

As como se ha modificado la tecnologa en el escritorio y en las estaciones de


trabajo de los ltimos aos, del mismo modo ha ido variando el lenguaje.
Trminos como computacin por multiprocesador y 64 bits ahora resultan
bastante comunes. Estas tecnologas ofrecen beneficios especficos pero
tambin, a veces, exigen sacrificar algunas cosas. Comprender estas
tecnologas nos ayuda a saber qu podemos esperar del software y realizar las
adquisiciones de equipo que resulten adecuadas. Multi hilo Contexto
Tecnolgico La capacidad de cmputo de una computadora est dada por sus
microprocesadores, tambin conocidos como unidades de procesamiento
central o CPU (por sus siglas en ingls). Las computadoras con una sola CPU
dominaron el mercado durante algn tiempo pero, en los ltimos aos, los
equipos de escritorio con ms de una CPU se han vuelto muy comunes. Las
llamadas computadoras multi ncleo contienen ms de una CPU
incorporadas en un chip. Desde afuera parecen iguales a los chips de una sola
CPU, pero los elementos fsicos y los programas de esa computadora los toman
como varias CPU independientes. En lo que respecta a los usuarios, mltiples
CPU y multi ncleo significan lo mismo. Durante aos, los fabricantes de CPU
se concentraron en hacer que esa CPU fuera ms rpida. Los avances
tecnolgicos siguieron el principio de la ley Moore, que implica que la velocidad
de las CPU se duplicara cada 18 meses. Sin embargo, esto no ha sido as en el
ltimo tiempo, dado que la tecnologa ha alcanzado sus propios lmites.
Entonces, los fabricantes de microprocesadores corrieron su atencin hacia los
sistemas de mltiple CPU/multi ncleo. Se deben dar dos cosas para que un
programa aproveche mltiples CPU/multi ncleos: 1. El algoritmo
implementado debe tener porciones que son interdependientes y se puedan
ejecutar en forma separada. 2. El software debe estar especficamente
diseado y escrito con esta pauta en mente y debe permitir que esas partes
independientes se ejecuten en paralelo y estn programadas para diferentes
CPU. Naturalmente, es necesario que exista la pauta nmero 1 para que pueda
siquiera intentarse el punto nmero 2. Un hilo de ejecucin es una secuencia
continua de instrucciones de programacin. Una instruccin no puede
comenzar hasta tanto no haya terminado la instruccin que la antecede. Un
hilo se ejecutar exclusivamente en una CPU o ncleo, independientemente de
cuantos CPU o ncleos haya instalados. De ah el trmino de flujo nico
(monohilvanado o single-threaded): el software est escrito para que exija que
todas las partes se ejecuten en una secuencia nica, una despus de la otra.
Los programas escritos para permitir que sus partes se ejecuten en forma
paralela se denominan multihilo (o multithreaded), dado que puede haber ms
de un hilo de ejecucin simultneamente. Los trminos multi hilo y en paralelo
se utilizarn como sinnimos en este artculo. minesight Diciembre 2010 2 El
sistema operativo o la computadora no pueden hacer que un programa de flujo
nico se convierta automticamente en un programa multi hilo. Por lo tanto. las

aplicaciones de flujo nico no mejoran su rendimiento en las computadoras


multi CPU/multi ncleo, porque solo pueden utilizar una nica CPU al mismo
tiempo. Los programas multi hilo s mejoran en estos equipos, pero cunto,
depender del tipo de problema (es decir, El algoritmo tiene, al menos, partes
independientes?) y de cmo fue diseado y programado. La mayora de las
aplicaciones son multi hilo en cierto grado, pero eso no significa que se
ejecutarn mucho ms rpido en equipos multi ncleo. La ley de Amdahl ilustra
los aspectos prcticos de aumentar el nmero de CPU en un sistema. Gene
Amdahl es un distinguido arquitecto computacional, reconocido por sus
trabajos en IBM desde 1960. l formul las limitaciones en el desempeo de los
sistemas multi CPU. Dado que la mayora de los algoritmos se pueden ejecutar
en paralelo solo hasta cierto grado, el desempeo en general del software en
paralelo no mejorar en forma lineal. Por ejemplo, un sistema de dos CPU no
siempre distribuir el tiempo de ejecucin en dos partes iguales. El problema
de la ejecucin en paralelo es un desafo bien conocido para la ciencia
computacional. Tomemos por ejemplo la aplicacin para un reproductor de
DVD. La mayora de estas aplicaciones tienen dos hilos; el hilo que procesa la
interfaz del usuario (botones, control de volumen, etc.) y el hilo que realiza el
trabajo. Cuando se hace clic en el boton play, se enva un comando al hilo que
realiza el trabajo y presenta la pelcula. Mientras la pelcula avanza el usuario
puede operar los controles ya que esto se realiza en forma paralela a la
ejecucin de la pelcula. Si la CPU es lo suficientemente rpida como para
decodificar todos los cuadros del video a su debido tiempo, el usuario ve un
avance sin interrupciones. Por el contrario, la pelcula ser entrecortada a
medida que el reproductor pierde cuadros (digamos un Blue Ray de 1080p que
la computadora no puede digerir). En este caso, pasar a un doble ncleo puede
o no resultar en una mejora. Los controles del usuario virtualmente no
consumen ningn tiempo de la CPU, por lo tanto si una CPU se encarga de los
controles del usuario y la otra se dedica a la decodificacin de video (que es el
99.999% del trabajo), no se ver ninguna mejora. Los creadores del
reproductor de DVD necesitaran prever esa situacin y escribir el programa del
reproductor para permitir que delegue parte de la lectura y decodificacin por
adelantado a otras CPU. Si hubieran hecho esto, al pasarnos a un sistema
multi ncleo, ciertamente obtendramos un desempeo mejorado. Pero, en
algunos casos, la ejecucin en paralelo del algoritmo no es posible: por
ejemplo, la solucin a un conjunto muy complejo de ecuaciones diferenciales
no lineales. Si se hace un seguimiento de la solucin desde la condicin inicial,
se ve que no hay un modo directo de computar una porcin en forma
adelantada mediante el empleo de otra CPU. En realidad, las ventajas que
ofrecen los programas multi hilo tienen su costo. En la prctica, los hilos en
paralelo deben estar sincronizados dado que muchas veces operan sobre los
mismos datos. Del mismo modo que cuando dos personas tratan de leer el
mismo libro en forma simultnea tienen que organizarse respecto del recurso
limitado (es decir un nico libro), los mltiples hilos informticos deben dedicar

ciertos ciclos de la CPU a cuestiones de sincronizacin. Las aplicaciones multi


hilo son ms complejas y por ende es ms costoso su desarrollo y su
mantenimiento. MineSight Ahora El conjunto de programas MineSight, en su
mayor parte es de flujo nico, pero tiene algunos componentes multi hilo.
MSDART es multi hilo pero debido a las limitaciones algortmicas ofrece,
aproximadamente, un 30% de mejora en el desempeo al pasar de un equipo
con CPU nica a uno de doble ncleo. Duplicar la capacidad y pasar a
cudruple ncleo mejora el rendimiento apenas en un pequeo porcentaje
adicional. MS3D es de flujo nico, excepto para las tareas de codificacin del
modelo y de sondajes. Para la codificacin de la vista de un modelo con
muchas subceldas o para la codificacin de sondajes a partir de polgonos,
veramos una mejora en el rendimiento con los sistemas de multi ncleo, en
comparacin con los de un solo ncleo. La verificacin de la licencia tambin se
realiza a travs de un hilo independiente, pero la carga de trabajos es
despreciable. MSEP es de flujo nico. Kriging es de flujo nico. minesight
Diciembre 2010 3 Los procesadores de geometras son de flujo nico. MSDA
es de flujo nico. MSTorque es de flujo nico, pero dado que depende del
funcionamiento de un servidor SQL Server, se vera beneficiado en un sistema
de mltiples ncleos. MSIP es de flujo nico, pero se beneficiara si MS3D
fuera multi hilo, porque se apoya en funciones de MS3D. Haulage es de flujo
nico. MSSO es multi hilo. MSEP y MS3D se beneficiaran si pudieran trabajar
en multi hilo al igual que MSHaulage. Esta capacidad multi hilo est siendo
incorporada en MSEP, mientras que Haulage est esperando su turno.
MineSight en el Futuro Cercano La importacin de LGO ASCII en MS3D es
multi hilo en MineSight 6.0. Esto debera mejorar el trabajo con los grandes
conjuntos de datos. Kriging se encuentra en las etapas finales de su
reelaboracin para soportar la ejecucin en multi hilo. Su lanzamiento ser en
2011. Y su funcionamiento ha mejorado en forma casi lineal, lo cual es
excelente, (es decir, con doble ncleo es casi dos veces ms rpido, con cuatro
ncleos es casi cuatro veces ms rpido). MSEP (MSOPIT) est en etapa
avanzada de reformulacin para admitir la ejecucin en paralelo. Mejorar su
desempeo en aproximadamente un 30% cuando opere en doble ncleo, y del
40 al 45% con cudruple ncleo. Procesamiento de 64-bits Contexto
Tecnolgico El mundo de las estaciones de trabajo personales y el mundo de
los servidores esta migrando de la llamada computacin de 32-bits a la de
64-bits. Durante las dos ltimas dcadas, los procesadores de 32 bits
dominaron la informtica personal y de servidores. Hasta no hace mucho, rara
vez surga la pregunta mi computadora es de xxx-bits o de yyybits?; todas
eran de 32 bits. Qu es lo que significa la denominacin xxx-bits? La
capacidad de una computadora est dada por sus microprocesadores. La
arquitectura de la CPU se crea considerando la porcin ms grande de datos
que puede procesar al mismo tiempo. En las arquitecturas de 32 bits, esto
significa 32 bits (o 32 elementos de ceros y unos). Este conjunto de datos
muchas veces se denomina palabra de la CPU. Por s solo, el procesamiento de

datos en conjuntos de 32 bits para nosotros ha funcionado bastante bien. Las


limitaciones llegaron de otro lado. La RAM (o memoria de acceso aleatorio) es
otro elemento crtico de una computadora. Normalmente se la conoce como
memoria. Tanto el programa de la computadora como los datos deben estar
en la RAM para que la CPU realice su trabajo. En 32 bits se pueden almacenar
hasta 4GB de valores. Una CPU normal de 32 bits fsicamente no puede operar
con ms memoria que 4GB. Durante mucho tiempo, esto no signific ningn
problema. 256MB era un montn de memoria hace una dcada; 1GB hasta
hace unos aos, todava se consideraba como bastante memoria. Pero, a
medida que aumentaba la cantidad de datos que queramos procesar, las
memorias se abarataron cada vez ms. Y el lmite de 4GB poco a poco fue
convirtindose en un obstculo. Se hizo necesario contar con CPU capaces de
operar con ms memoria. Esto signific aumentar el tamao de la palabra, y
entonces 64 bits fue instaurada como la norma de facto. minesight Diciembre
2010 4 Un Sistema de 64 bits Correr los Programas Ms Rpidamente? A
veces. Pero podemos realizar una analoga con un camin ms grande que
puede mover una cantidad de material ms rpidamente, porque su capacidad
de carga es mayor y necesita menos viajes, pero no porque avance ms
rpidamente. Del mismo modo, los problemas que exigen tratar con datos
demasiado grandes para un procesador de 32 bits pueden resolverse ms
rpidamente en un sistema de 64 bits. No obstante, un programa que funciona
bien en un sistema de 32 bits rara vez obtendr algn beneficio de las
arquitecturas de 64 bits. El punto de alerta aqu es: el software debe estar
creado especialmente para las arquitecturas de 64 bits. Hacer que un
programa sea apto para 64 bits puede exigir cierta reelaboracin. Algunas
expresiones de programacin cambian en un entorno de 64 bits. Un programa
de 64 bits no correr en una computadora de 32 bits. Un programa de 32 bits
puede ejecutarse en un sistema de 64 bits, pero no tendr acceso
automticamente a ms memoria. Al ejecutar esa aplicacin, la CPU de 64 bits
se pondr en el modo de 32 bits, con todas las limitaciones de esta
arquitectura. El resultado final es que las ventajas de un sistema de 64 bits
aparecen mayormente cuando se necesita procesar conjuntos de datos muy
grandes y cuando tenemos ms de 4GB de RAM en el sistema. MineSight Ahora
Actualmente, el conjunto de programas MineSight no soporta la informtica de
64 bits. MineSight en el Futuro Cercano Estamos trabajando para incorporar la
capacidad de 64 bits a nuestros productos. Algunos componentes del conjunto
MineSight estarn disponibles con soporte para 64 bits durante la segunda
mitad de 2011. Estamos incorporando soporte de 64 bits en MSDART, MSEP,
MSTorque y MS3D Procesador GPU Contexto tecnolgico GPU significa unidad
de procesamiento grfico, o en lenguaje comn, una tarjeta para grficos.
Impulsados por las demandas de aplicaciones CAD y para juegos, pero tambin
por el nuevo aspecto que presentan los sistemas operativos tales como
Microsoft Vista y MacOS X, las tarjetas grficas se han convertido en poderosos
procesadores de computacin. Estos procesadores tienen una arquitectura

paralela que permite que se realicen en forma simultnea ms de 100 tareas


especializadas. La gente pronto se dio cuenta que esta poderosa capacidad
rara vez se utiliza y que sera bueno sacarle provecho. Una GPU puede
procesar 10 a 20 veces ms rpido aquellos problemas que se pueden dividir
en varias tareas simples e independientes. El empleo de una GPU es
conceptualmente similar al de un software multi hilo, pero con mayores
limitaciones. Una GPU puede ejecutar solamente tareas simples, por lo tanto el
software debe adaptarse especficamente para este fin. La planificacin de
tareas para una GPU no est estandarizada, exige una programacin adicional
y aumenta los gastos generales. No obstante, las ventajas del procesamiento
por GPU son tan grandiosas que lentamente se convertirn en el formato
dominante. MineSight Ahora Ninguna de las aplicaciones MineSight utiliza
procesadores GPU. MineSight en el Futuro Cercano No est previsto el
lanzamiento de ninguna aplicacin MineSight con procesamiento GPU, pero se
est evaluando esta tecnologa para su aplicacin en nuestros productos.
minesight Diciembre 2010 5 w w w. m i n e s i g h t . c o m Unidades de
estado slido Contexto Tecnolgico Una unidad de estado slido (SSD por sus
siglas en ingls) es un nuevo tipo de disco duro. Los discos duros tradicionales
utilizan discos magnticos giratorios para almacenar los datos y cabezales
mviles para recuperarlos. Los SSD utilizan memorias flash para el
almacenamiento de los datos y no tienen partes mviles. Los SSD mejorarn el
funcionamiento de las aplicaciones que procesen grandes cantidades de datos.
Un disco duro tradicional necesita mover el cabezal lector sobre la superficie
del disco para leer o escribir los datos. Un conjunto grande de datos se
distribuir a lo largo de toda su superficie, obligando al dispositivo lector a
desplazarse mucho. El desempeo entonces variar de acuerdo con la
distribucin de los datos en el disco (que en efecto es aleatoria). Esto fue, y
sigue siendo, un mal necesario. Los procedimientos tales como la
defragmentacin, no ayudan demasiado para grandes datos. El disco duro
buscar en toda la superficie del disco, independientemente de cmo estn
organizados los datos. Dado que los SSD son totalmente electrnicos, y que no
tienen ninguna parte en movimiento, ofrecen tiempos de acceso ms rpidos y
ms previsibles. Pero los SSD son ms costosos y su capacidad todava no es
compatible con las unidades tradicionales. No obstante, se convertirn en una
solucin viable. Empleo de SSD con MineSight Todos los proyectos que trabajen
con grandes conjuntos de datos se beneficiarn si utilizan SSD. Las
operaciones de importacin/guardado de datos pueden ser dos veces ms
rpidas en un SSD. Conclusiones Actualmente, MineSight es esencialmente de
flujo nico y, por el momento, no soporta la informtica de 64 bits. Por lo tanto,
actualizar su equipo para que tenga mltiples ncleos o 64 bits no tendr
mayor efecto. No obstante, el empleo de SSD contribuir en aquellas
aplicaciones que realizan grandes cantidades de entradas/salidas en el disco
(MSTorque, MSDART). Puede contar con que habr ms capacidad multi hilo y
soporte para 64 bits en breve. Con ms componentes con diseo multi hilo,

podr ver las mejoras al pasar a los equipos con mltiples ncleos. Quienes
trabajen con grandes conjuntos de datos vern an ms beneficios cuando
utilicen MineSight con soporte 64 bits.

You might also like