Problemas con la implementación @()

Estoy pensando en los problemas que me comentó mi mentor del proyecto:

  • Enviar a cada proceso los datos necesarios para ejecutar a función.
  • Reunir los datos devueltos por cada subproceso sin conocer de antemano el tamaño de los datos
  • Fucionamiento transparente usando MPI o sin usarlo. Vamos, que si no se usa se ejecute secuencialmente.

Para estos problemas tengo soluciones parciales, sin embargo, he localizado otro problema más:

Cuando los subprocesos utilizan nuevamente el operador @() para paralelizar otra llamada a una función… ¿qué ocurre? Si la primera llamada subdividió el dato problema en n subprocesos, uno por cada proceso MPI, entonces las nuevas paralelizaciones no serán efectivas, ya que se ejecutarán secuencialmente. Además, existen dos complicaciones:

  1. Subdividir el dato problema en muchas partes puede hacer que cada subproceso tenga una carga de cómputo pequeña y se pierda tiempo en la comunicación de los datos por la red.
  2. Subdividir el dato problema en un número fijo menor que el máximo de subprocesos puede ocasionar desperdicio de potencia de cálculo, ya que algunos procesos pueden permanecer ociosos.

Se lo plantearé a los mentores en el próximo email y veremos si me aportan algun dato que me ayude a resolver el problema

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

Leave a Reply