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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
多线程制作 L 系统字符串时 C 与 C++ 的性能分析:ABP 案例研究
与 C 语言的结构化范式相比,C++ 中的面向对象编程为算法编码提供了便利,这一事实常常在学生中引发一个合理的问题:既然 C++ 中的字符串对象可以避免这一工作,为什么还要在 C 语言中使用动态内存来编码字符串呢?这些问题有助于开展基于问题的学习(PBL)案例研究。本文通过使用计算机工程专业学生的个人计算机,以多线程方式生成 L 系统字符串,报告了 C 语言和 C++ 语言之间的对比。通过 100 次运行,计算了两类 L 系统的平均执行时间,并考虑了两线程、四线程和八线程的负载平衡和非负载平衡处理。结果表明,C 语言的执行速度更高,但与 C++ 语言相比,"加速度 "存在有趣的差异。最后得出的结论是,只要数据量相当大且平衡,线程数不应超过内核数,那么使用多线程并行处理就能达到最佳效率。通过案例研究的发现式学习得出这些结论非常值得学生借鉴。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Sistema de Información Gerencial para la detección del alumno en situación extraordinaria Antena Rectangular con Ranuras y Muescas para Aplicaciones Biomédicas Software para ayudar en la interpretación de gammagrafías óseas Optimización de Encuestas Electorales mediante Redes Neuronales Artificiales Optimizando el aprendizaje de matemáticas en el primer grado: el impacto del Metaverso de Roblox en el desarrollo de competencias numéricas
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1