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



Título del documento: Análisis del desempeño de C versus C++ en la producción multihilo de cadenas L-System: un caso de estudio ABP
Revista: Programación matemática y software
Base de datos:
Número de sistema: 000573336
ISSN: 2007-3283
Autores: 1
1
1
1
1
1
1
Instituciones: 1Universidad del Istmo, campus Tehuantepec. Ingeniería en Computación,
Año:
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)