Integrantes de equipo:                                                                      Universidad Tecnológica De La Mixteca

Bacilio Anota Marvin Salvador

Enriquez Pacheco Blanca Nieves

Robles Robles Emmanuel Guadalupe

Objetivo general: 

Contrastar el desempeño de la paralelización hecha con directivas OMP versus paralelización hecha con Threads, tomando como caso de estudio el procesamiento digital de imágenes al transformarlas de RGB a escala de grises. 




Implementación en Windows:

Paralelización del método fromRGBtoGRAY (promedios)


código original (s/cambios)


2 hilos

4 hilos

6 hilos


WINDOWS


17.178908 ms

hilos

8.96935 ms


SpeedUp 1.915290183

9.89895 ms


SpeedUp

1.735427293

11.21620816 ms

SpeedUp

1.531015643


directivas OMP

7.69551 ms

SpeedUp

2.232328722

8.105408 ms

SpeedUp

2.119437788

7.575238 ms

SpeedUp

2.267771389


Todos los tiempos están en milisegundos ms.

Original (ms)2 threads4 threads6 threadsOMP 2 threadsOMP 4 threadsOMP 6 threads
18.48528.4649.06659.91287.32469.48717.2372
25.29928.72559.08769.85757.07168.15177.3572
20.09458.40539.974314.27128.59798.96528.4074
17.88288.60849.19279.59097.38779.33767.4144
17.45288.49669.089413.16968.73147.25817.5824
18.30628.574711.257113.46946.71119.20428.0796
17.07099.00899.972113.07826.89647.42427.3414
17.52568.911410.931112.06458.72067.33147.9896
17.91739.22759.499213.19257.21447.60127.1208
17.223610.36469.666411.62227.09648.27486.8378
16.68968.36539.736510.59018.8057.83477.1773
17.38928.98118.994211.11768.86467.97027.0997
17.42529.07139.962310.016311.16477.9286.9256
16.83168.66969.517112.41817.10369.22967.3684
16.32149.48729.727410.42559.04938.96017.7848
16.66018.86579.046511.968610.42599.63918.3364
16.53538.744210.197712.0036.89458.8237.3011
17.09228.81149.6999.79746.83478.59817.3089
16.5788.76928.83359.19699.00627.37437.2026
16.13338.77079.20329.84788.63626.61537.7598
16.56828.72759.720813.63536.90287.50567.5795
16.64828.961911.381813.05456.76527.04659.7839
17.60359.130913.18459.20396.89877.70897.01
16.70938.489711.94813.08857.41467.59187.2562
18.40338.6358.999713.56458.86237.97136.9836
16.41018.877312.80589.4847.11737.42587.5517
15.63519.11949.419113.06188.70517.82327.1332
15.89258.510310.24289.04177.03589.18037.5963
15.70448.512610.525713.22758.71728.9887.459
16.72558.377911.27739.7397.36737.82438.0069
16.08678.59449.651613.32366.91827.53389.1684
16.58789.578211.17413.13126.99627.67677.2068
16.78089.372810.289212.84088.95228.95098.3071
17.885510.04379.11699.54536.75258.25937.6101
16.89568.79219.44339.28876.75817.4537.7869
17.15369.050110.42278.82926.74717.29197.1268
16.68488.95069.20929.41326.84778.9767.2119
17.18478.8868.81569.49697.06918.42747.1486
16.75738.8069.53610.54828.99987.48057.3562
16.53398.35389.285810.50236.81857.23067.3254
16.39778.375810.077110.36578.91979.28197.5852
17.42258.90289.453314.1647.03847.75427.1274
17.90688.77549.07129.22379.01049.18978.1585
16.78458.532810.356810.26117.05197.44867.444
16.72318.84998.847410.66516.88557.79078.0639
17.48188.9118.84879.54667.00357.38698.264
16.335211.51389.88069.47256.92527.71046.8991
16.64828.716311.020313.56377.10358.7538.3117
16.641712.36518.986510.70166.89987.85727.3452
16.83918.43189.30211.43566.75517.74417.322














Implementación en Linux

Paralelización del método fromRGBtoGRAY (promedios)


código original (s/cambios)


2 hilos

4 hilos

6 hilos


LINUX


92.02875137 milisegundos

Hilos

58.68086338

SpeedUp

1.568292388

39.86300945

SpeedUp

2.30862528

35.86229801

SpeedUp

2.566169947


OMP

59.07876015

SpeedUp

1.557729904

39.10441876

SpeedUp

2.353410543

44.00159359

SpeedUp

2.091486782



Original2 threads4 threads6 threadsOMP 2 threadsOMP 4 threadsOMP 6 threads
91.820001662.6339912440.9929752330.619859762.2799396542.3159599340.02809525
89.0460014361.8398189539.4029617340.1928424861.7990493836.3969802938.07806969
90.1918411361.8360042640.5480861733.3349704759.3228340137.2588634537.63198853
95.1950550159.1790676157.9240322136.1640453357.4250221342.8709983875.17004013
98.6878871958.281898546.9069480932.0570468955.4847717346.0371971144.93093491
91.6111469357.4610233339.870977431.8639278457.8720569638.4368896558.72011185
94.5508480157.4750900335.8760356930.9469699955.5319786136.5419387835.49313545
96.0719585455.7940006337.5368595132.9339504258.5110187538.0439758345.64809799
102.496862460.6892108937.2850894939.0760898659.4840049738.5010242570.2650547
91.8998718356.1411380837.3079776839.7150516559.3810081539.9138927542.47903824
95.9038734456.351900137.3411178646.5588569663.1129741740.1170253841.87011719
93.7981605557.4440956136.1270904542.5801277260.5049133340.3318405247.0969677
91.8979644855.2570819940.5681133346.0360050258.9590072634.0890884437.62388229
89.2651081157.9330921240.6110286746.744108257.1780204840.4059886955.90105057
93.7170982457.221889537.5089645430.4579734856.335210846.1940765436.56506538
99.9851226855.1729202341.1329269440.971994456.455850634.3551635746.72598839
86.5070819959.6339702640.7691001940.6432151862.0431938.2199287434.02996063
91.3698673260.9250068739.3450260231.2528610259.9279403739.949178735.31193733
90.9900665376.7700672139.4349098229.9818515858.0940246634.9190235137.59503365
88.5210037265.7398700739.160013241.3200855363.2219314639.6509170543.68686676
88.7908935567.8350925439.6459102631.9261550957.4829578439.5948886948.81095886
93.6429500659.5440864640.4388904635.3829860758.9759349837.8220081345.00007629
89.3249511756.0021400540.0950908731.8880081260.6920719140.4171943747.22690582
89.7541046158.2380294842.5758361832.4831008959.3049526239.2851829551.97095871
93.6648845756.9009780940.5480861731.6250324263.020944637.0070934343.03789139
89.8950099955.9461116838.7990474734.9440574658.3899021138.1751060550.02784729
89.8709297261.7949962641.0671234133.7040424357.2230815938.3911132836.23199463
90.4259681754.6338558239.3369197836.3459587159.7090721140.7891273538.80500793
89.7631645258.6991310143.2500839238.9869213164.274787936.0169410740.73119164
92.0870304159.2329502141.5091514639.1499996261.0020160744.2190170347.38712311
91.0120010458.9840412139.767026930.9870243162.5109672541.1560535445.25899887
88.1409645159.9598884638.7930870133.632993759.4348907538.8960838353.76887321
91.6330814455.9370517742.0720577234.4660282159.0949058539.9188995440.30203819
90.6538963357.0271015238.4290218431.6560268458.7050914839.136886641.04304314
95.6180095758.5839748435.8889102938.7818813356.6601753237.0030403145.12405396
88.3691310956.66112939.092063932.9248905259.3130588536.4391803749.70097542
91.4568901155.0878047939.7610664448.1359958656.7069053642.0930385641.5148735
91.3231372856.8261146540.9939289130.303001459.0679645535.8548164435.82596779
92.675924359.9510669738.565874137.6801490859.5338344638.1600856846.50497437
90.2380943356.2591552735.7949733735.9208583856.4301013940.6770706238.91086578
91.313123758.9768886638.5770797735.9039306657.1999549934.4958305454.14485931
90.8939838459.8890781443.0769920333.5881710157.1341514642.4730777739.73197937
91.2859439854.9919605338.7320518527.8170108857.4049949640.945053142.77300835
91.7639732458.1698417736.2420082133.6179733360.2819919638.0260944435.08090973
95.2401161259.3738555938.3989810937.8849506457.6298236839.1042232540.50183296
91.0239219755.241823241.0649776534.5330238354.9178123537.5578403541.03207588
90.4569625958.0430030839.8781299638.707017961.1779689843.6570644436.20696068
89.9698734358.7489604939.8650169432.0940017760.5030059837.401914635.92705727
93.2679176357.5070381238.606882137.7149581962.1378421838.1751060543.34592819
94.3539142655.214881936.6339683536.8769168955.0920963337.7819538139.29901123















Diagrama de cajas y bigote.





Las cajas van ordenadas de izquierda a derecha por Windows original
 hasta Linux con directivas OMP






  • Windows (Hilos):

    • El tiempo de ejecución disminuye significativamente al usar 2 hilos en comparación con el código original.

    • Añadir más hilos (4 y 6) aumenta ligeramente el tiempo de ejecución, lo que indica que el paralelismo adicional no proporciona beneficios y podría introducir sobrecarga.

  • Windows (Directivas OMP):

    • El uso de directivas OMP resulta en tiempos de ejecución consistentemente bajos, con poca variación entre 2, 4 y 6 hilos.

    • Esto sugiere que OMP es eficiente en la gestión del paralelismo en este caso.

  • Linux (Hilos):

    • Se observa una disminución drástica en el tiempo de ejecución al pasar del código original a 2 hilos.

    • Aumentar a 4 hilos reduce aún más el tiempo, pero usar 6 hilos resulta en un tiempo ligeramente mayor, similar al comportamiento observado en Windows.

  • Linux (Directivas OMP):

    • Al igual que en Windows, OMP ofrece un rendimiento consistente en Linux, con tiempos de ejecución bajos y poca variación entre diferentes números de hilos.

    • Sin embargo, los tiempos de ejecución en Linux son notablemente más altos que en Windows, lo que podría deberse a que en Linux se está ejecutando en una máquina virtual (VMWARE).


Observaciones Generales:

  • Tanto en Windows como en Linux, el uso de hilos ofrece una mejora significativa en el rendimiento en comparación con el código original.

  • Las directivas OMP son una alternativa eficiente para gestionar el paralelismo, especialmente cuando se utilizan más de 2 hilos.

  • La elección entre hilos y OMP dependerá de factores como la plataforma, el hardware y la facilidad de implementación.


Comentarios

  1. Las especificaciones del equipo donde se realizaron las pruebas son:
    Procesador AMD Ryzen 5 4600H with Radeon Graphics 3.00 GHz
    RAM instalada 24.0 GB (23.4 GB utilizable)
    Sistema Operativo: Windows 11 Home
    Tipo de sistema Sistema operativo de 64 bits, procesador x64
    Lápiz y entrada táctil La entrada táctil o manuscrita no está disponible para esta pantalla

    ResponderBorrar

Publicar un comentario