¿Cuáles son las desventajas de la computación paralela?

En pocas palabras, la computación paralela se refiere a dividir una gran tarea en un grupo de tareas más pequeñas y asignar cada tarea a una computadora o procesador diferente, de modo que se pueda hacer más trabajo al mismo tiempo usando más recursos que si el mismo trabajo fuera hecho una tarea a la vez por una sola computadora.

Por supuesto, esto puede tener muchas ventajas, entre las cuales se encuentra el trabajo más rápido (y en casos extremos, puede marcar la diferencia entre una tarea totalmente inviable y una tarea fácil). Pero también tiene algunas desventajas:

  • Es más difícil: se necesita un poco de trabajo extra, una mentalidad diferente en general y, a veces, incluso un lenguaje o estilo de programación diferente, para escribir programas que puedan hacer un procesamiento paralelo de manera eficiente. Esto se debe a que es más que escribir los algoritmos para realizar sus tareas individuales, sino también escribir o integrarse con el marco que le permite dividir esas tareas, coordinar el “estado común” entre ellas, asegurarse de que todos los nodos de procesamiento sigan activos, manejar fallas transitorias y reintentos, etc. En mi experiencia, no todos pueden hacer esto, por lo que a menudo hay equipos especiales o desarrolladores especializados dedicados a escribir sistemas que hacen que sea más fácil para otros desarrolladores trabajar con ellos.
  • Requiere más recursos: en un caso simple, este procesamiento paralelo podría significar que está utilizando todos los núcleos en su CPU en lugar de solo uno. Pero en casos más grandes, es posible que necesite una granja de servidores completa, o incluso algo a la escala de [correo electrónico protegido] (uno de los proyectos de procesamiento paralelo más grandes del mundo) donde las computadoras de todo el mundo se utilizan para analizar cantidades realmente masivas de datos . Coordinar, y por supuesto pagar, este tipo de recursos no es trivial.
  • Requiere expectativas realistas: muchas personas simplemente asumen que si ejecuta un proyecto paralelo con 4 computadoras, el trabajo se realiza cuatro veces más rápido. En un escenario ideal, esto puede ser cierto, pero en términos generales, cuanto mayor sea su grupo de trabajadores, menos eficiente será cada trabajador adicional debido a la sobrecarga adicional involucrada en la coordinación de todo el trabajo, asegurando que el mismo trabajo no sea entregado a dos o más trabajadores a la vez, etc. Habiendo desarrollado varios de estos sistemas, puedo decirle que tratar de explicar todo esto a la gerencia puede ser un verdadero desafío. 🙂

Finalmente, hay algunos casos en los que el procesamiento paralelo no vale la pena. Por ejemplo, si tiene tareas que realmente deben realizarse en orden (una tarea depende de otra), entonces, por definición, deben realizarse de una en una, y no tiene sentido tratar de paralelizarlas. Te sorprendería cuántas veces he tenido esa discusión con gerentes y personas no técnicas también, muchos tienden a asumir que “Oye, tenemos los recursos, también podríamos usarlos, ¿verdad?” , sin comprender completamente los problemas que estamos tratando de resolver.

Entonces, de alguna manera, uno de los mayores desafíos para el procesamiento paralelo es saber cuándo usarlo y, lo que es más importante, cuándo NO usarlo.

Pienso más en el paralelismo como una propiedad de ciertos problemas, y en la computación paralela como un método para explotar esa propiedad para llegar a soluciones más rápido. Como tal, supongo que tendría que preguntar “desventaja en comparación con qué”. En su mayor parte, los problemas que se resuelven con la computación paralela (al menos en el dominio de la supercomputación) solo se pueden resolver con la computación paralela. Las desventajas son que la computación paralela es difícil de pensar y difícil de trabajar. Las ventajas son que obtienes una solución en tu vida …

Tomaré un enfoque ligeramente diferente y diré que la mayor desventaja es la escasez de herramientas para crear programas paralelos. Por supuesto, el Intel Parallel Studio es una herramienta sólida y está disponible sin costo. Pero del mayor número de herramientas, la mayoría no admite programación paralela. Entonces, su desventaja, al decidir escribir un programa paralelo, se ve severamente restringido en las herramientas disponibles para usar.

Las soluciones paralelas son más difíciles de implementar, son más difíciles de depurar o probar que son correctas, y a menudo funcionan peor que sus contrapartes en serie debido a la sobrecarga de comunicación y coordinación. Si tienes una opción, no lo hagas. Sin embargo, como señala Barry Rountree, a veces no tienes otra opción si quieres obtener una respuesta que todavía es útil cuando la obtienes. Luego vas paralelo a pesar de los inconvenientes.

Creo que la principal desventaja es que la mayoría de nosotros tenemos mentes bastante simples. Esto hace que el trabajo de asignar su problema a un entorno informático paralelo no sea intuitivo y sea más difícil que resolver cómo lo haría a mano.

La computación paralela solo plantea esfuerzos adicionales para retrasar los resultados (en la fase de deducir). Estos esfuerzos son ignorantes en comparación con los beneficios que brinda la computación paralela.

More Interesting

¿Hay alguna forma de aprovechar la potencia informática de mi teléfono móvil en mi computadora?

¿Es posible acceder a información desde la nube desde un iPhone?

¿Dónde están los servidores de Netflix en EE. UU.?

¿Cómo sé si la computación en la nube es relevante para mi empresa comercial?

Cómo autoaprender la configuración del servidor de clúster en la nube de alta disponibilidad cuando todos los servicios prestados en Internet son de pago

¿Cuál es el escenario laboral para principiantes en AWS en India? ¿Puede una persona que se desmayo hacer un curso de AWS y cuáles son los requisitos previos para ello?

¿Cuál se usa más en el lugar de trabajo, Heroku o AWS?

Con un 74% de calificaciones en la clase 10 y un 63% en la clase 12, ¿soy elegible para trabajar en una de las principales empresas multinacionales después de completar mi B.Tech en Tecnología de la Información?

El cerebro humano es mucho más complejo de lo que podemos comprender, pero podemos almacenar datos en la nube. Cuando una PC falla, ¿se pueden restaurar los datos a una nueva?

¿Por qué debería importarme la informática distribuida?

¿Qué es mejor alojamiento de servidor dedicado o alojamiento en la nube?

¿Se integrará toda la potencia informática de Google en un solo dispositivo personal en el futuro? En caso afirmativo, ¿cuántos años pasará?

¿Por qué se cierran los servicios de archivos de Ubuntu One el 1 de junio de 2014? ¿Esto afectará a los principales jugadores como Dropbox?

¿Qué universidad ofreció un programa de B.Tech con especialización en computación en la nube?

¿Cuál es la mejor manera de mantener varias Mac siempre sincronizadas?