南开大学 | 探索新知与突破自我
在科技的海洋中,每一次探索都是一次冒险,每一次突破都是一次成长。
2021年,我参加了南开大学南开百度联合实验室的国家自然科学基金项目,并在其中负责算法并行部分。这次项目让我的并行技术取得了进步,熟悉了很多并行工具和编程方法,也是我与PAC比赛的开端。
这次参赛过程充满了挑战与惊喜。我们团队的题目是对一个复杂的布局布线问题进行时间优化。串行算法作为解决问题的基础,经历了两代的变化,每一次的改进都凝聚了团队的汗水与智慧。
最初,我们采用了以模拟退火算法为基础的算法来生成原理图并对其进行并行化。然而,初步的结果并不如人意,原理图的生成效果远远达不到预期且并行优化效果较差。正值PAC 2022举办之际,我们尝试参加了比赛,但毫无意外的没能获奖。
面对这一困境,团队成员们不分昼夜地进行讨论和测试,希望能够找到问题的症结所在。在无数个不眠之夜后,我们决定对算法进行彻底的重构。这是一个艰难的决定,因为重构意味着要放弃已有的成果,重新开始。但正是这次重构,为我们带来了转机,打开了新的可能性。
随着对问题的深入理解,我们开始着手第二代算法的设计。这一次,我们的目标不仅仅是达到较好的原理图效果,还包括对算法运行时间的全面优化。我们分析了网表规模较大时的运行瓶颈,并针对性地进行了包括并行、局部性优化在内的一系列改进。第二代算法在处理大规模网表时,展现出了更加出色的性能。
在优化动态规划算法的过程中,我们遇到了一个棘手的问题:如何进一步提高计算效率?在我们的算法中“动态规划列内伸展留白”部分是一个关键点,但如何优化它,我们一筹莫展。
直到有一天,我在进行代码调试时,偶然发现了一个现象:当我们对其内部的某个函数使用SIMD(单指令流多数据流)优化时,算法的效率竟然有了显著的提升。要知道,这是一个很内层的函数,且每次调用的耗时都不算大,但他运行的次数足够多,每一丝优化都会因为数量的原因被放大很多倍。这个发现完全出于偶然,让我们意识到,创新和突破就隐藏在看似平凡的细节之中。
参赛过程中,我深刻体会到了思想进步的重要性。算法优化不仅仅是技术层面的挑战,更是思维方式的革新。我们不能局限于传统的思维模式,而应该勇于尝试新的方法,探索未知的领域。
这次参赛经历让我认识到,技术的发展日新月异,只有不断学习,才能跟上时代的步伐。同时,我也意识到了团队合作的力量。在团队中,每个成员都有自己的长处,只有相互协作,才能发挥出最大的潜力。
参赛的旅程虽然充满了坎坷,但我们团队始终以坚定的步伐前行,在PAC2023-2024的舞台上绽放了属于我们的光芒,并收获了令人欣慰的成果。在未来的日子里,我将继续前行,在科技的道路上不断探索,不断突破。我相信,只要我们保持好奇心,勇于创新,就一定能够发现更多的惊喜,实现更多的可能。这次参赛经历,将成为我人生中宝贵的财富,它不仅让我学到了知识,更让我学会了如何面对挑战,如何与团队协作,如何不断进步。
感谢这次经历,感谢王刚老师和刘晓光老师的悉心指导,感谢我的团队,感谢所有的挑战和惊喜。让我们在探索的道路上,继续前行。
全国并行应用挑战赛(Parallel Application Challenge 简称PAC)2013年创办,由中国计算机学会高性能计算专业委员会、北京并行科技股份有限公司等共同倡导发起,竞赛旨在培养和发掘杰出计算人才,寻找行业最佳应用,践行新发展理念,助力相关产业高质量发展!
官方通知
2024/10/23
2024/10/23
2024/9/30
2024/8/22
10月23