16.04.2014 Views

Administración avanzada de GNU/Linux (PDF) - SW Computación

Administración avanzada de GNU/Linux (PDF) - SW Computación

Administración avanzada de GNU/Linux (PDF) - SW Computación

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ª FUOC • XP04/90785/00019<br />

Software libre<br />

afecta al kernel <strong>de</strong>l sistema operativo (como por ejemplo Mosix).<br />

Simplemente, es una forma <strong>de</strong> agrupación (cluster) <strong>de</strong> máquinas que<br />

ejecutan <strong>GNU</strong>/<strong>Linux</strong> y actúan como un superor<strong>de</strong>nador. Obviamente,<br />

existe gran cantidad <strong>de</strong> herramientas que permiten obtener una<br />

configuración más fácil, bibliotecas o modificaciones al kernel para<br />

obtener mejores prestaciones, pero es posible construir un cluster<br />

Beowulf a partir <strong>de</strong> un <strong>GNU</strong>/<strong>Linux</strong> estándar y <strong>de</strong> software convencional.<br />

La construcción <strong>de</strong> un cluster Beowulf <strong>de</strong> dos nodos, por ejemplo,<br />

se pue<strong>de</strong> llevar a cabo simplemente con las dos máquinas<br />

conectadas por Ethernet mediante un hub, una distribución <strong>de</strong> <strong>GNU</strong>/<br />

<strong>Linux</strong> estándar (Debian), el sistema <strong>de</strong> archivos compartido (NFS) y<br />

tener habilitados los servicios <strong>de</strong> red como rsh o ssh. En estas condiciones,<br />

se pue<strong>de</strong> argumentar que se dispone <strong>de</strong> un cluster simple <strong>de</strong><br />

dos nodos.<br />

¿Dón<strong>de</strong> están los beneficios <strong>de</strong>l cómputo paralelo? Veremos esto<br />

con un ejemplo [RE98]. Sea un programa para sumar números (por<br />

ejemplo, 4 + 5 + 6 ...) llamado sumdis:<br />

#inclu<strong>de</strong> <br />

int main (int argc, char** argv)<br />

{<br />

float inicial, final, resultado, tmp;<br />

if (argc < 2) {<br />

printf (“Uso: %s N.º inicial N.º final\n”,argv[0]);<br />

exit(1); }<br />

else {<br />

inicial = atol (argv[1]);<br />

final = atol (argv[2]);<br />

resultado = 0.0; }<br />

for (tmp = inicial; tmp

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!