Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porSuparman Indradjaja Modificado hace 6 años
1
Mesuraments d'eficiència d'un raytracer distribuït
Raimon Ràfols Montané
2
Una imatge val més que mil paraules...
Imatge final renderitzada amb varies fonts de llum, reflexes difusos, ombres i antialiasing
3
Entorn Màquina de treball: IBM RS-6000 SP
Execució mitjançant cues batch Balanceig entre nodes: LoadLeveler Sistema Operatiu: AIX v. 4.3 Llenguatge de programació: Java Compilador: jdk 1.3 de SUN Processadors simultanis: 8
4
Algunes consideracions
Per aprofitar la màquina multiprocessador, els renders de les imatges es fan amb multiples threads. Per evaluar el balanceig de càrrega i el overhead per el sincronisme entre threads, ho executarem utilitzant 3 tipus d’unitat de render diferent: pixel, línia i bloc de línies. S’ha de tenir en compte que hi ha una JVM a sota amb tot l’overhead que provoca. Cal destacar els 18 threads de sistema que crea al inicialitzar-se.
5
Threads de sistema de la JVM
Threads creats en el grup “system” THREAD START (id = 2, name=“Signal dispatcher”) THREAD START (id = 3, name=“Reference Handler”) THREAD START (id = 4, name=“Finalizer”) THREAD START (id = 5, name=“GC Helper 1”) [...] THREAD START (id = 19, name=“GC Helper 15”)
6
Mostra de rendiment Tot i l’utilització de 8 processadors, el rendiment pic està utilitzant 5 threads. Les petites diferències entre els 3 tipus de granularitats són degudes a la sincronització i al balanceig de càrrega.
7
Balanceig de càrrega Utilitzant blocs de línies es veu clarament que la càrrega dels threads està molt mal balancejada, s’hauria d’aplicar una tècnica de job stealing. En canvi, quan utilitzem pixels, la càrrega està molt equilibrada.
8
Conclusions (I) Treballant amb la unitat de pixel, ens dóna una càrrega molt equilibrada però ho paguem amb un gran overhead de sincronisme. Treballant amb blocs de línies ens fa desaparèixer el sincronisme, però la càrrega queda molt desbalancejada. En el cas d’aplicar algun algorisme per equilibrar-la, afegiriem un petit overhead per la sincronització, però seria mínim.
9
Conclusions (II) Encara que el raytracer és molt paral·lelitzable, només obtenim un factor de millora de 3.3 (en el millor cas). En el cas ideal el factor seria 8 (amb 8 processadors). Els threads de sistema de la JVM polueixen molt la cpu, evitant una millor paral·lelització.
10
Futur.. Per a renderitzar utilitzant més d’una màquina s’hauria d’implementar fent servir threads i sockets. De cara a guanyar més rendiment i explotar la màquina s’hauria d’implementar en un llenguatge que compilés a codi natiu, com ara C.
11
Bibliografia Documentació interna de kadesh del sistema de cues.
java.sun.com www-1.ibm.com/servers/eserver/pseries/hardware/largescale/sp.html An Introduction to Ray-tracing, GLASSNER, Academic Press, 1989
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.