Apuntes+Picharro

En primer lugar estudiamos las características de los PCs de sobremesa. Arquitectura VLIW, arquitectura multihebra, varios procesadores, una gran conectividad (incorparan Wifi, Bluetooth, Infrarrojos). El objetivo es aprovechar todos los recursos locales de tu sistema, programación concurrente, y usar recursos externos cuando sea necesario ,programación distribuida. Concepto: Elegir que lenguaje de programación utilizar segun la aplicación. Programar sistemas distribuidos fisicacamente, abiertos (puedan incorporar nuevos elementos), escalables (al aumentar el numero de usuarios, el diseño debe seguir siendo óptimo), transparentes(transparente al usuario) y tolerantes a fallos (en caso de fallos que no afecte a la totalidad de la red). ¿Computacion Paralelo vs Computacion Distribuida? Para la computación paralela es necesario conocer todos los sistemas explicitamente. Los sistemas paralelos ya no se usan. Tipos:
 * Computacion Distribuida**
 * Cluster. Conjunto de PCs de bajo coste unidos por una red. Configuración homogénea.
 * Grid. Similar a cluster, pero la principal diferencia es que existen varios administradores en lugar de uno solo. Además es posible que esten en distintas ubicaciones los elementos de la red.
 * P2P. Red que se construye entre los usuarios del programa p2p. Las redes kad son totalmente descentralizado, (estas conectado a los nodos cercanos), mientras que la red ed2k es semicentralizada. No hay jerarquia entre los diferentes nodos de la red. Tanto Emule como Bittorrent intentan maximizar la velocidad de la red, la diferencia es que BitTorrent solo establecen la asociación entre pares que acceden al mismo archivo.
 * Ciclos redundantes. En la inmensa mayoria de procesadores existen ciclos redundantes (ciclos desaprovechados de CPU). El objetivo es utilizar estos ciclos para realizar trabajo útil sin sobrecargar el sistema.