30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

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.

<strong>Actas</strong> XXII Jornadas <strong>de</strong> Paralelismo (<strong>JP2011</strong>) , <strong>La</strong> <strong>La</strong>guna, Tenerife, 7-9 septiembre 2011Fig. 3.Nueva estructura <strong>de</strong> memoriaFig. 4.Un nuevo mo<strong>de</strong>lo <strong>de</strong> comunicación entre CPU y GPUComo po<strong>de</strong>mos ver en la figura 4, la CPU y GPUcomparten el mismo espacio <strong>de</strong> memoria, la CPUcon su controlador <strong>de</strong> memoria (M.C.CPU) pue<strong>de</strong>acce<strong>de</strong>r a todos los espacios <strong>de</strong> memoria, y mantenerla opción mostrada arriba don<strong>de</strong> cada multiprocesadortenía su propia memoria privada.Debido a esto, no se requiere ninguna trasferencia<strong>de</strong> datos entre la CPU y GPU, a<strong>de</strong>más no esnecesario tener duplicados ni los parámetros ni lassoluciones en diferentes espacios <strong>de</strong> memoria, lo cualredundaría también en un ahorro energético.C. Gestión <strong>de</strong> kernelsActualmente, es necesario que la CPU lance todoslos kernels al mismo tiempo, a<strong>de</strong>más estos tienen queterminar también al mismo tiempo. Por lo tanto, noes posible utilizar una solución <strong>de</strong> un kernel particularhasta que todos los kernels terminen. Esto es una<strong>de</strong>sventaja ya que el trabajo más lento impone sustiempos sobre el resto, puesto que la CPU no pue<strong>de</strong>utilizar las soluciones hasta que este kernel finalice.A<strong>de</strong>más, <strong>de</strong>bido a la imposición <strong>de</strong>l kernel más lento,tenemos que parte <strong>de</strong> los recursos computacionales(multiprocesadores y memoria) estan inactivos.Para que podamos utilizar los resultados <strong>de</strong> loskernels tan pronto como estos esten disponibles, esnecesario un mecanismo que permita a la CPU conocerla finalización <strong>de</strong> los mismos. Este mecanismopodría ser implementado con una simple cola monitorizadapor la CPU, esta cola (finished jobs queue,FJQ), <strong>de</strong>bería indicar a la CPU el in<strong>de</strong>ntificador <strong>de</strong>los kernels ya acabados, y por tanto la CPU podríautilizar las soluciones <strong>de</strong> estos, y asignar otros kernelsa los recursos computacionales inactivos.Para ello sería necesario un mecanismo que permitieselanzar los kernels en cualquier momento, envez <strong>de</strong> tener que ser lanzados todos a la vez. Estopodría ser implementado gracias a un conjunto <strong>de</strong>colas (jobs queues, JQ), una por multiprocesador,que almacenase los trabajos a ser ejecutados en unmultiprocesador partcular.Gracias a esto, la CPU podría utilizar los resultados<strong>de</strong> los kernels tan pronto como estos esténdisponibles. A<strong>de</strong>más es posible lanzar kernels encualquier instante, sin tener que esperar a que el máslento <strong>de</strong> ellos finalice. Con todo lo anterior se obtendríaun uso sustancialmente más eficiente <strong>de</strong> losrecursos.Como po<strong>de</strong>mos ver en la figura 5, hay una cola(FJQ) don<strong>de</strong> todos los multiprocesadores envian la<strong>JP2011</strong>-321

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

Saved successfully!

Ooh no, something went wrong!