软件工程与科学软件公司软件工程师实习报告_第1页
软件工程与科学软件公司软件工程师实习报告_第2页
软件工程与科学软件公司软件工程师实习报告_第3页
软件工程与科学软件公司软件工程师实习报告_第4页
软件工程与科学软件公司软件工程师实习报告_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程与科学软件公司软件工程师实习报告一、摘要2023年6月5日至8月23日,我在一家软件工程与科学软件公司担任软件工程师实习生,负责协助开发部门完成某科研项目的仿真平台重构工作。核心工作成果包括优化原有代码模块,将计算效率提升23%,通过引入分布式计算框架将并行处理能力从120GB/小时提升至350GB/小时,并完成3个关键算法模块的文档化与单元测试,错误率降低至0.5%。期间应用了C++、Python及Docker等专业技能,实践了敏捷开发中的持续集成流程,将代码部署周期缩短40%。提炼出的可复用方法论包括基于性能分析的模块重构策略及自动化测试脚本编写模板,这些方法在后续项目迭代中验证有效。二、实习内容及过程2023年6月5日至8月23日,我在一家做科学软件的团队实习。他们主要做些高精度的仿真计算,客户大多是些研究所。我跟着组里搞计算平台的优化。6月10号开始接触项目,当时平台跑一个流体力学仿真要8个小时,内存耗光还报错。我负责其中一个固体力学模块。分析代码发现里头有重复计算,还有个循环里没开并行。6月18号我提了个优化方案,把那循环改成并行,用OpenMP,编译后单核速度不变,多核跑满时速度直接翻倍。导师说这招挺巧,让我把其他模块也看看。7月2号遇到大麻烦,有个积分算法内存溢出。组里老哥说可能是高斯求积点的数量没调好。我试了半天,发现是网格加密时求积点没跟着变,导致点数指数级增长。7月15号我改了自适应加密逻辑,加了个阈值限制总点数,跑了3次实验,把内存峰值从8GB降到了1.2GB,计算时间也少了30%。这事儿让我明白分布式并行不光是堆机器,算法层面得配合着。8月1号开始做文档,把模块接口都写进Wiki。我整理了个模板,包含输入输出参数、算法原理、性能测试数据。组里其他人用后都说比以前清晰。8月20号项目结项,重构后的平台跑完整工况只要3小时,并行效率稳定在0.85以上,比之前强不少。这8周里,我跟着他们搞了需求分析、代码重构、性能测试、文档编写整个流程。老哥们教我不少东西,比如怎么用Valgrind找内存泄漏,怎么看gprof的输出。最收获的是,搞科学计算不能光会写代码,还得懂点硬件,知道Cache怎么用,内存带宽是瓶颈时该加缓存还是用GPU。现在看论文能直接判断出算法在啥设备上跑合适。当然也有不完美的地方。比如公司培训就两天,讲得飞快,很多工具都是现学现用。我建议可以搞个在线教程,把常用的脚本和调试技巧都录下来。另外我发现自己写测试用例时太保守,总想着按文档跑,没考虑极端情况,有次提交了个测试漏了边界条件,被同事抓了个正着。下次可以多看看缺陷数据库,学学别人怎么设计刁钻的用例。这段经历让我真真切切感受到做科学软件跟做互联网应用不一样,容错率低,一个数据错可能整个实验白做。以后想进这行,还得补补并行计算和数值方法的课。三、总结与体会8月23号下班的时候,看着电脑屏幕上又成功跑完一轮仿真,跟8周前比,现在这平台快了快一半,内存也省了不少,心里挺实的。回想这8周,确实像闭了个小循环。6月初刚接手那固体力学模块时,对着几千行的旧代码懵圈,感觉学的东西好像全忘了。那时候觉得并行计算就是个概念,OpenMP怎么用都不知道。后来跟着导师跑实验,对着gprof的堆栈图一点点找瓶颈,6月18号那天晚上终于把那个循环优化了,第二天早上跟导师演示时,他指着屏幕说“嗯,这效率提升看着明显”,那瞬间觉得之前流的汗值了。7月2号搞积分算法溢出时,差点急哭了,后来慢慢调试,发现是自适应加密逻辑没写对,调整阈值后内存问题解决了,这让我明白搞科研不能怕麻烦,问题总在细节里。这段经历让我最深的体会是,学校里学的理论跟真做项目差着距离。学校考你算法对不对,公司考你算法跑得快不快、内存占不占大。比如我之前觉得高斯求积点越多越准,但实际发现超过某个数后内存和时间的增长完全不成比例,这得在实际平台上测。还有文档,学校论文要求格式,公司文档要求实用,我之前写Wiki时总想着写得完美,结果同事说“看不懂”,后来改成“接口参数输入范例输出结果”三段式,效率高多了。对我职业规划的影响挺大的。以前觉得做软件就做软件,现在明白科学软件这行,代码得为计算服务,得懂硬件,还得懂怎么跟用户(主要是科学家)打交道。他们不是要最炫的界面,是要稳定、高效、能跑出他们想要结果的工具。这让我想以后学的东西往这个方向多靠拢。比如打算下学期好好学学MPI,看看能不能用在更大的并行问题上,顺便把PMP证书考了,了解下项目管理,以后真要做项目时能少走弯路。看着这8周写的代码和文档,虽然还有不少问题,但感觉跟学校里单纯写作业不一样了,得对结果负责。这让我有了点压力,但更多的是动力。行业里听说现在AI跟科学计算结合越来越紧,像机器学习加速仿真这种,感觉这领域有奔头。我得抓紧学,以后真想进这行,得拿出真本事才行。这8周让我从一个学生,开始有点当职场人的样子了。四、致谢感谢公司提供了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论