Tesis qu - Departamento de Computación - Cinvestav
Tesis qu - Departamento de Computación - Cinvestav
Tesis qu - Departamento de Computación - Cinvestav
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
alancear la carga interna <strong>de</strong>l multicore cuando un HA se <strong>qu</strong>eda sin datos en su<br />
lista local acce<strong>de</strong> a la lista global y toma una porción <strong>de</strong> los datos, varios a la vez,<br />
y los almacena en la lista local sin necesidad <strong>de</strong> interrumpir a ningún otro HA <strong>qu</strong>e<br />
se encuentre con datos. Cuando la lista global está vacía, el HA toma datos <strong>de</strong> las<br />
listas locales. Esto re<strong>qu</strong>iere <strong>de</strong>l blo<strong>qu</strong>eo <strong>de</strong> dichas listas y el movimiento <strong>de</strong> los datos<br />
<strong>de</strong> un lugar <strong>de</strong> la memoria compartida a otro. Esta es una operación más lenta <strong>qu</strong>e<br />
el simple robo entre dos listas locales.<br />
Cuando se re<strong>qu</strong>iere enviar datos a otro nodo para balancear la carga global <strong>de</strong>l<br />
cluster el HB acce<strong>de</strong>rá a la lista global para enviar una fracción <strong>de</strong> los datos. Cuando<br />
todas las listas locales estén vacías y la lista global también lo este, se avisará al HB<br />
para <strong>qu</strong>e envíe una petición <strong>de</strong> datos externa.<br />
Aun<strong>qu</strong>e las operaciones <strong>de</strong> sincronización sobre variables compartidas tiene un<br />
efectoenel<strong>de</strong>sempeño<strong>de</strong>laaplicaciónengeneral,tambiénse<strong>de</strong>be<strong>de</strong>tomarencuenta<br />
el costo en tiempo <strong>qu</strong>e toma una operación <strong>de</strong> balance <strong>de</strong> carga. Una organización<br />
híbrida aumenta el número <strong>de</strong> operaciones en cada balance y la complejidad <strong>de</strong> estas,<br />
<strong>de</strong>bido a <strong>qu</strong>e se <strong>de</strong>ben <strong>de</strong> migrar los datos más <strong>de</strong> una vez entre las diferentes listas.<br />
4.2. Implementación <strong>de</strong> MC-DLML<br />
Despues <strong>de</strong> analizar el espacio <strong>de</strong> diseño, <strong>de</strong>cidimos usar una estructura <strong>de</strong> listas li-<br />
gadas consumidas como pilas organizadas en listas locales <strong>de</strong> datos, una por cada<br />
hilo <strong>de</strong> aplicación. Esta <strong>de</strong>cisión surge <strong>de</strong>spués <strong>de</strong>l análisis y la experimentación con<br />
distintas organizaciones. Se intentó en primer lugar con dos listas locales para cada<br />
HA y una lista global por cada nodo, sin embargo, esta versión tenía un pobre <strong>de</strong>sem-<br />
peño <strong>de</strong>bido al incremento <strong>de</strong>l tiempo <strong>de</strong> las operaciones <strong>de</strong> robo y la complejidad <strong>de</strong><br />
éstas. También se intentó con una sola lista global por nodo, <strong>de</strong> manera similar a la<br />
<strong>de</strong>scrita en [27]. Esta lista global <strong>de</strong> datos fue implementada en un arreglo circular<br />
parabeneficiarse <strong>de</strong>la localidad<strong>de</strong>la cachéyobtener una mayor “simpatía mecánica”<br />
como se mencionó en la sección 2.3.4. Sin embargo, esta organización <strong>de</strong> lista funciona<br />
E. F. HERNÁNDEZ-VENTURA <strong>Tesis</strong> <strong>de</strong> Maestría Febrero 2012