一些关于并行计算的科研思路

简介:          最近想要找点新的点子来优化之前看到的一些立体匹配论文,我之前一直是用图割做立体匹配,刚开始时候用图割做图像分割,后来发现这块都被人做烂了,继续往下看发现图割还能搞立体匹配,效果也挺好。

    

    最近想要找点新的点子来优化之前看到的一些立体匹配论文,我之前一直是用图割做立体匹配,刚开始时候用图割做图像分割,后来发现这块都被人做烂了,继续往下看发现图割还能搞立体匹配,效果也挺好。但是后面发现掉大坑里面了。


1.什么是好的research

这篇文章中写到什么是好的research?这篇文章中有讲到(看到的有点晚了)

http://www.52cs.org/?p=632


    创新性高,性能差:俗称的挖坑的工作。这样的工作包括提出一个全新的问题或者对一个已有问题的全新解法。这样的工作虽然可能在文章中只提出了非常简单的baseline,或性能并不能比过最好的已有方法,但是可以启发大量后续的research

很显然用图割算法进行立体匹配就属于这种工作。


    在没有综合对比其他全局优化算法,或者办全局优化算法的时候,我就贸然继续采用图割算法进行立体匹配的工作,仅仅是因为之前看了图割算法,这不能不说是硕士阶段方向性选择的一大失误。


2.科研方向的选择(对于研究生而言尽量选择一个点)

    而我因为不懂科研方向的选择在图割算法立体匹配上下去,现在想想,什么是选择在硕士阶段科研题目的正确方法呢?我觉的对于一般院校的学生来说,应该是一些在小处上能够改进的题目,比如图像分割,人脸表情识别,深度图像增强这种有成熟框架可以替换算法实质内容,又实验方便的科目。

    比如讲图像分割,用聚类算法进行分割,模糊k均值,或者引入图论的相关算法多做些实验,国内的核心期刊还是很好水的。

而对于立体匹配这种偏系统性工程性科研题目。而且在没有师兄师姐代码或者理论基础的情况下,光是自己找代码,自己找例程就

 

 

非常耗费时间。


3.有关图形图像领域的万金油灌水(串行改并行)

    图形图像处理在国内国际有一个万金油灌水领域,其实也可以说是一个偷懒的领域,就是将传统算法并行化处理,下面说说我的思路。如何找到并识别并行的机会呢。最好的方法是用代码性能分析工具分析代码,对cpu占用率较高的部分单独拉出来来。代码分析可以在windows下面用amd的codexl,直接对应exe就能分析出来代码所在的瓶颈。或者用visual studio自带的analysis,或者linux下面免费的oprofile

 

比如下图我随便找了一个立体匹配的程序在codexl中跑过一遍后下面是分析的结果:可以看到热点函数和代码都给找出来了。这就是我们通常说的:

性能分析引导优化(profile-guided optimization)

 



看到程序27%的时间卡在了一个内联函数的直方图相加上。



    可以直接下载一个Intel parallel studio XE 2016之后在vs2010中打开tools运行优化选项,说明文档:

 

如果按照学生身份来注册的话,是免费使用一年的: 点击打开链接 

  采用intel 编译器的优化,intel编译器安装好之后在windows下有两种运行方式,一种是命令行,一种是作为visual studio 2010的一个插件工具:
 
 
运行时候需要根据并行优化向导进行一步步配置优化,这基本也算是傻瓜式的优化,其实主要能用到的就是两部分,编译优化和,分析引导优化:


注意到开启不同选项,其优化时间是不同的,甚至更慢:

 



寻找并行化的机会之二:

    检查应用程序中的关键路径。关键路径是确定任务可以在最短时间内完成的一组步骤。下图中显然任务c可以和任务a和b并行。

 

 

 

 

 

 

要点:

      除非应用程序用于可并行化代码的时间超过其运行时间的一半,否则其可扩展性有限。我们用profile分析的时候,程序热点代码运行时间在25%-30%以上才有明显的优化效果。

 

 

真正能够缩短的运行时间,amdahl定律:



参考文献:

戈夫. 多核应用编程实战[M]. 人民邮电出版社, 2013.

相关文章
|
数据采集
PCA与主成分回归(PCR)有何区别?
PCA是降维工具,转化相关变量为线性无关的主成分,保留数据变异。PCR是回归分析方法,利用PCA的主成分预测因变量,应对自变量间的多重共线性,提升模型稳定性。两者协同工作,优化高维数据的建模。
978 0
|
SQL 机器学习/深度学习 设计模式
《代码生成中梯度对齐的普适性探索:余弦相似度阈值0.92是万能钥匙!》
在数字化浪潮中,代码生成技术正重塑软件开发格局。梯度对齐机制通过协调参数更新优化模型性能,余弦相似度≥0.92的阈值在特定场景(如SQL生成)表现出色,但在面向对象编程等复杂任务中可能限制灵活性。数据集规模、质量和多样性以及模型架构和训练方法也影响阈值普适性。未来需探索动态、自适应的阈值设定,以实现更高效、智能的代码生成。
232 17
|
存储 编译器 程序员
C/C++中的内建函数介绍:介绍C/C++中内建函数的基本概念、用途和作用
C/C++中的内建函数介绍:介绍C/C++中内建函数的基本概念、用途和作用
586 0
|
存储 数据处理 索引
Python基础教程——元组
Python基础教程——元组
|
索引
第五章 作业(149A)【计算机系统结构】
第五章 作业(149A)【计算机系统结构】
595 0
|
1天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
7598 32
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
1天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
652 144
|
1天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
|
1天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1267 2
|
1天前
|
人工智能 弹性计算 运维
阿里云发布堡垒机智能运维Agent,运维交互进入自然语言新时代
支持自然语言运维,提升效率与安全双保障。
1173 1