12.07.2015 Views

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

Libro en PDF - DIT - Universidad Politécnica de Madrid

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Complejidad y Tecnologías <strong>de</strong> la InformaciónLa posibilidad <strong>de</strong> paralelizar los difer<strong>en</strong>tes niveles que se pued<strong>en</strong> consi<strong>de</strong>rar <strong>en</strong> unord<strong>en</strong>ador ti<strong>en</strong>e distintas consecu<strong>en</strong>cias según el nivel escogido (al hablar <strong>de</strong> estosniveles nos referimos a la jerarquía <strong>de</strong> Bell y Newell. En los niveles más bajos, elparalelismo consigue una mayor velocidad <strong>en</strong> la ejecución y ciertas v<strong>en</strong>tajas <strong>en</strong>cuanto a prestaciones <strong>de</strong>l sistema, la duplicación <strong>de</strong>l hardware (para conseguirtolerancia a fallos) o la ejecución segm<strong>en</strong>tada <strong>de</strong> instrucciones son algunas formas<strong>de</strong> paralelismo muy utilizadas y con gran<strong>de</strong>s v<strong>en</strong>tajas pero sin que se traduzcan <strong>en</strong>un aprovechami<strong>en</strong>to real <strong>de</strong> lo que es el paralelismo <strong>en</strong> sí. Otro tipo <strong>de</strong> paralelismoes el que com<strong>en</strong>tabamos al hablar <strong>de</strong> los arrays sistólicos, <strong>en</strong> los que la i<strong>de</strong>abásica es disponer <strong>de</strong> un número elevado <strong>de</strong> unida<strong>de</strong>s <strong>de</strong> cálculo (o <strong>de</strong> proceso,pero g<strong>en</strong>eralm<strong>en</strong>te se utilizan <strong>en</strong> proceso numérico) que permitan realizar variasoperaciones a la vez sobre un conjunto <strong>de</strong> datos. Según se conect<strong>en</strong> estas unida<strong>de</strong>s<strong>de</strong> cálculo se t<strong>en</strong>drá mayor o m<strong>en</strong>or flexibilidad, tal y como hemos vistoanteriorm<strong>en</strong>te.Programación estructurada y paralelismoYa quedan lejos los tiempos <strong>en</strong> que los ord<strong>en</strong>adores se programabanbit a bit, a través <strong>de</strong> conmutadores binarios. A la utilización <strong>de</strong> losl<strong>en</strong>guajes <strong>de</strong> <strong>en</strong>samblador le siguieron l<strong>en</strong>guajes como Fortran o PL-1<strong>en</strong> los que el grado <strong>de</strong> abstracción era mucho mayor. Tras éstosaparecieron poco a poco los primeros l<strong>en</strong>guajes <strong>de</strong> programaciónestructurada, ori<strong>en</strong>tados a la resolución <strong>de</strong> problemas por el conocidoalgoritmo "divi<strong>de</strong> y v<strong>en</strong>cerás". Pero la programación estructuradati<strong>en</strong>e una serie <strong>de</strong> problemas que se han ido conoci<strong>en</strong>do con el tiempo.En primer lugar, y al contrario <strong>de</strong> lo que manti<strong>en</strong>e la cre<strong>en</strong>cia popular,la programación estructurada no facilita el diseño <strong>de</strong> programas, loque facilita es su mant<strong>en</strong>imi<strong>en</strong>to y <strong>de</strong>puración. Utilizar un l<strong>en</strong>guaje <strong>de</strong>este tipo obliga a <strong>de</strong>scomponer el problema <strong>de</strong> forma coher<strong>en</strong>te yestudiar una jerarquía, a veces muy compleja, <strong>de</strong> procedimi<strong>en</strong>tos yfunciones. Hacerlo así facilita la <strong>de</strong>puración, pues cada procedimi<strong>en</strong>topue<strong>de</strong> probarse por separado y es más s<strong>en</strong>cillo localizar los posiblesfallos. También facilita el mant<strong>en</strong>iemi<strong>en</strong>to pues las modificacionesson g<strong>en</strong>eralm<strong>en</strong>te <strong>en</strong> los procedimi<strong>en</strong>tos, no <strong>en</strong> el programa completo.Pero, al igual que suce<strong>de</strong> con el paralelismo, y es lo que queremosresaltar aquí, un l<strong>en</strong>guaje <strong>de</strong> programación estructurada, al igual queun l<strong>en</strong>guaje <strong>de</strong> programación paralelo, traslada gran parte <strong>de</strong> lacomplejidad <strong>de</strong> diseño al programador que ha <strong>de</strong> resolver el problema<strong>de</strong> una forma que pue<strong>de</strong> no ser la más a<strong>de</strong>cuada a su estructura. Elparalelismo hace que esto sea aún más crítico, pues pue<strong>de</strong> llegar aobligar al programador (macroparalelismo) no sólo a i<strong>de</strong>ar una soluciónparalela sino a controlar la ejecución concurr<strong>en</strong>te y simultánea <strong>de</strong>varios subprogramas.248

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

Saved successfully!

Ooh no, something went wrong!