Sunteți pe pagina 1din 5

MineSightylaTecnologaInformticade ltimaGeneracin

s 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.

D i c i e m b r e

2 0 1 0

m i n e s i g h t

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.

D i c i e m b r e

2 0 1 0

m i n e s i g h t

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.

D i c i e m b r e

2 0 1 0

m i n e s i g h t

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.

D i c i e m b r e

2 0 1 0

m i n e s i g h t

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.

w w w. m i n e s i g h t . c o m
D i c i e m b r e

2 0 1 0

S-ar putea să vă placă și