Análisis del desempeño de C versus C++ en la producción multihilo de cadenas L-System: un caso de estudio ABP

Autores/as

  • J. Jesús Arellano Pimentel Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación https://orcid.org/0000-0003-0609-9470
  • Guadalupe Toledo Toledo Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación https://orcid.org/0000-0002-8197-8865
  • Mario Andrés Basilio López Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación https://orcid.org/0009-0004-3347-9027
  • José Ricardo Salvador Nolasco Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación
  • Guillermo Eduardo Reyes Rodríguez Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación
  • José Alejandro Pérez Sibaja Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación
  • Samuel Erasto López Díaz Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

DOI:

https://doi.org/10.30973/progmat/2024.16.2/6

Palabras clave:

ABP, Lenguajes de programación, L-Systems, Procesamiento multihilo

Resumen

La programación orientada a objetos en C++ facilita la codificación de algoritmos respecto al paradigma estructurado del lenguaje C, este echo suele provocar un cuestionamiento válido entre los estudiantes ¿por qué codificar cadenas con memoria dinámica en C cuando los objetos String en C++ evitan ese trabajo? Este tipo de inquietudes permiten gestar casos de estudio de Aprendizaje Basado en Problemas (ABP). En el presente artículo se reporta el contraste de los lenguajes C y C++ a través de la generación multihilo de cadenas L-System usando computadoras personales a disposición de estudiantes de ingeniería en computación. Se realizaron cien corridas para el cálculo de tiempos promedio de ejecución para dos tipos de L-System considerando el procesamiento con balanceo y sin balanceo de carga para dos, cuatro y ocho hilos. Los resultados muestran una mayor velocidad de ejecución para el lenguaje C, pero diferencias interesantes en el Speed Up respecto al lenguaje C++. Al final se concluye que la mejor eficiencia se logra paralelizando con multihilos, siempre y cuando el volumen de los datos sea considerable y esté balanceado, además, la cantidad de hilos no debe rebasar el número de núcleos. Bien vale la pena que los estudiantes lleguen a estas conclusiones mediante el aprendizaje por descubrimiento a través de un caso de estudio.

Biografía del autor/a

J. Jesús Arellano Pimentel, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

J. Jesús Arellano Pimentel es Ingeniero en Sistemas Computacionales por el Instituto Tecnológico de Morelia y obtuvo el grado de Maestro en Ciencias en Ingeniería Eléctrica con opción en Sistemas Computacionales por la Universidad Michoacana de San Nicolás de Hidalgo. Además, es candidato a Doctor en Educación con Tecnologías del Aprendizaje y el Conocimiento por la Universidad Virtual del Estado de Michoacán. Se desempeña como Profesor-Investigador de Tiempo Completo adscrito a la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. También es miembro del Cuerpo Académico de Realidad Virtual y Aplicaciones Didácticas. Sus áreas de interés incluyen: desarrollo de software educativo, sistemas de realidad virtual y prototipos didácticos.

Guadalupe Toledo Toledo, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

Guadalupe Toledo Toledo es Ingeniera en Sistemas Computacionales por el Instituto Tecnológico de Tuxtepec, y Maestra en Computación Aplicada por parte del Laboratorio Nacional de Informática Avanzada. Actualmente es Profesor-Investigador de Tiempo Completo adscrito a la carrera de Ingeniería en Computación de la Universidad del Istmo. También es miembro del Cuerpo Académico de Realidad Virtual y Aplicaciones Didácticas. Sus áreas de interés se centran en el desarrollo de software y prototipos didácticos con aplicación en ingeniería y computación, aplicación de evaluaciones de usabilidad a productos de software centrados en el usuario y la integración del cómputo aplicado en la solución de problemas multidisciplinares.

Mario Andrés Basilio López, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

Mario Andrés Basilio López es estudiante de la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. Sus áreas de interés se centran en el desarrollo de software y bases de datos.

José Ricardo Salvador Nolasco, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

José Ricardo Salvador Nolasco es estudiante de la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. Sus áreas de interés se centran en el desarrollo de software y bases de datos.

Guillermo Eduardo Reyes Rodríguez, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

Guillermo Eduardo Reyes Rodríguez es estudiante de la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. Sus áreas de interés se centran en el desarrollo de software y bases de datos.

José Alejandro Pérez Sibaja, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

José Alejandro Pérez Sibaja es estudiante de la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. Sus áreas de interés se centran en el desarrollo de software y bases de datos.

Samuel Erasto López Díaz, Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación

Samuel Erasto López Díaz es estudiante de la carrera de Ingeniería en Computación de la Universidad del Istmo, campus Tehuantepec. Sus áreas de interés se centran en el desarrollo de software y bases de datos.

Citas

Shoaib, M., Sumail, M., Sanjrani, A. A., Ahmed, A. A. Comparative Study of Contemporary Programming Languages in Implementation of Classical Algorithms. Journal of Information & Communication Technology. 2021, 14(1), 23-32.

TIBOE. TIOBE Index for June 2023 [en línea]. [recuperado el 20 de junio de 2023] https://www.tiobe.com/tiobe-index

Prusinkiewicz, P., Lindenmayer, A. The Algoritmic Beauty of Plants. New York: Springer-Verlag, 1990.

Savery, J. R. Overview of Problem-based Learning: Definitions and Distinctions. Interdisciplinary Journal of Problem-Based Learning. 2006, 1(1), 9-20. doi: https://doi.org/10.7771/1541-5015.1002.

Diestra, S. N., Apolaya, J. P. Perfil de egreso en los estudiantes de ingeniería: aportes significativos de la metodología del Aprendizaje Basado en Problemas. SCIÉNDO. 2021, 24(1), 35-43. doi: http://dx.doi.org/10.17268/sciendo.2021.004

Henriques, L., Bernardino, J. Performance of Memory Deallocation in C++, C# and Java. In: 18.ª Conferência da Associação Portuguesa de Sistemas de Informação (CAPSI’2018). Santarém, Portugal, 2018, 1-18.

Bukie, P. T., Udeze, C. L., Obono, I. O., Edim, B. E. Comparative Analysis of Compiler Performances and Program Efficiency [en línea]. Recuperado el 6 de Junio de 2022 de https://www.preprints.org/manuscript/201909.0322/v1

Ogala, J. O., Ojie, D. V. Comparative analysis of C, C++, C# and Java programming languages. Global Scientific Journals. (2020), 8(5), 1899-1913.

Brandefelt, L., Heyman, H. A Comparison of Performance & Implementation Complexity of Multithreaded Applications in Rust, Java and C++, Thesis, KTH Royal Institute of Technology, Swedish, 2020.

Plauska, I., Liutkevičius, A., Janavičiūtė, A. Performance Evaluation of C/C++, MicroPython, Rust and TinyGo Programming Languages on ESP32 Microcontroller. Electronics MDPI. 2023, 12(1), 1-19. doi: https://doi.org/10.3390/electronics12010143

Restrepo, B. Aprendizaje basado en problemas (ABP): una innovación didáctica para la enseñanza universitaria. Educación y Educadores. 2005, 8, 9-19.

Arellano, J. J., Nieva, O., Algredo, I. Aprendizaje Basado en Proyectos Utilizando L-Systems en un Curso de Compiladores. Programación Matemática y Software. 2013, 5(1), 82-96.https://doi.org/10.30973/progmat/2013.5.1/7

Microsoft. Heap Functions [en línea]. Windows app development documentation [recuperado el 15 de junio de 2022] de: https://learn.microsoft.com/en-us/windows/win32/memory/heap-functions

Microsoft. Acquiring high-resolution time stamps [en línea]. Windows app development documentation [recuperado el 15 de junio de 2022] de: https://learn.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps

Microsoft. Creating Threads [en línea]. Windows app development documentation [recuperado el 15 de junio de 2022]: https://learn.microsoft.com/en-us/windows/win32/procthread/creating-threads

2024-16-02-06

Descargas

Publicado

01-06-2024

Cómo citar

Arellano Pimentel, J. J., Toledo Toledo, G., Basilio López, M. A., Salvador Nolasco, J. R., Reyes Rodríguez, G. E., Pérez Sibaja, J. A., & López Díaz, S. E. (2024). Análisis del desempeño de C versus C++ en la producción multihilo de cadenas L-System: un caso de estudio ABP. Programación matemática Y Software, 16(2), 60–72. https://doi.org/10.30973/progmat/2024.16.2/6

Número

Sección

Artículos

Artículos más leídos del mismo autor/a