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

J. A. Arellano Pimentel, Guadalupe Toledo Toledo, Mario Andrés Basilio López, José Ricardo Salvador Nolasco, Guillermo Eduardo Reyes Rodríguez, José Alejandro Pérez Sibaja, Samuel Erasto López Díaz
{"title":"Análisis del desempeño de C versus C++ en la producción multihilo de cadenas L-System: un caso de estudio ABP","authors":"J. A. Arellano Pimentel, Guadalupe Toledo Toledo, Mario Andrés Basilio López, José Ricardo Salvador Nolasco, Guillermo Eduardo Reyes Rodríguez, José Alejandro Pérez Sibaja, Samuel Erasto López Díaz","doi":"10.30973/progmat/2024.16.2/6","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":417893,"journal":{"name":"Programación Matemática y Software","volume":"32 20","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Programación Matemática y Software","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.30973/progmat/2024.16.2/6","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

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.
多线程制作 L 系统字符串时 C 与 C++ 的性能分析:ABP 案例研究
与 C 语言的结构化范式相比,C++ 中的面向对象编程为算法编码提供了便利,这一事实常常在学生中引发一个合理的问题:既然 C++ 中的字符串对象可以避免这一工作,为什么还要在 C 语言中使用动态内存来编码字符串呢?这些问题有助于开展基于问题的学习(PBL)案例研究。本文通过使用计算机工程专业学生的个人计算机,以多线程方式生成 L 系统字符串,报告了 C 语言和 C++ 语言之间的对比。通过 100 次运行,计算了两类 L 系统的平均执行时间,并考虑了两线程、四线程和八线程的负载平衡和非负载平衡处理。结果表明,C 语言的执行速度更高,但与 C++ 语言相比,"加速度 "存在有趣的差异。最后得出的结论是,只要数据量相当大且平衡,线程数不应超过内核数,那么使用多线程并行处理就能达到最佳效率。通过案例研究的发现式学习得出这些结论非常值得学生借鉴。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信