Revista: | Programación matemática y software |
Base de datos: | |
Número de sistema: | 000573336 |
ISSN: | 2007-3283 |
Autores: | Arellano Pimentel, J. Jesús1 Toledo Toledo, Guadalupe1 Basilio López, Mario Andrés1 Salvador Nolasco, José Ricardo1 Reyes Rodríguez, Guillermo Eduardo1 Pérez Sibaja, José Alejandro1 López Díaz, Samuel Erasto1 |
Instituciones: | 1Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación, |
Año: | 2024 |
Volumen: | 16 |
Número: | 2 |
Paginación: | 60-72 |
País: | México |
Idioma: | Español |
Resumen en inglés | Object-oriented programming in C++ facilitates the coding of algorithms with respect to the structured paradigm of the C language, this fact usually causes a valid question among students, why encode strings with dynamic memory in C when String objects in C++ avoid that work? These types of concerns allow the development of case studies of Problem-Based Learning (PBL). This paper reports the contrast of C and C++ languages through the multithreaded generation of L-System strings using personal computers available to computer engineering students. One hundred runs were made to calculate average execution times for two types of L-System considering balanced and unbalanced processing for two, four, and eight threads. The results show a higher execution speed for the C language, but interesting differences in the Speed Up compared to the C++ language. In the end, it is concluded that the best efficiency is achieved by parallelizing with multithreads, if the volume of data is considerable and balanced, and the number of threads should not exceed the number of cores. It is well worth it for students to reach these conclusions through discovery learning through a case study. |
Resumen en español | 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. |
Palabras clave: | ABP, Lenguajes de programación, L-Systems, Procesamiento multihilo |
Keyword: | PBL, Programming languages, L-Systems, Multi-threaded processing |
Texto completo: | Texto completo (Ver PDF) |