共 1,297 篇文章
共 6,280 篇文章及评论
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
软件博客
英特尔的开发人员社区邀请您参加我们的互动博客,谱写软件发展史
VTune(TM) Amplifier XE 报告输出gprof的格式
作者: Peter Wang (Intel) (37 篇文章) 日期: 一月 20, 2012 在 4:09 下午
评论 (0)
在VTune(TM)Amplifier XE 2011 中包含二类预定义的分析: 1. User-mode Sampling and Tracing Analysis: 热点分析(Hotspots Analysis),并行分析(Concurrency ...
分类: 并行计算, 英特尔® 软件网络 2.0
标签:VTune gprof format
Amazed 游戏学习二 坐标的分析
作者: gaomatrix (1 篇文章) 日期: 一月 13, 2012 在 4:33 下午
评论 (0)
对于这种和贪吃蛇类似的游戏,坐标的计算在程序中占了很大的比重,只有坐标算对了,才能在正确的时间、正确的地点画出来正确的东西。 下面是Maze迷宫的坐标计算 01.// maze level data 02.private static int[] mMazeData; 这个一维数组存放所有的tile的类型 01.// maze tile size ...
分类: 博客征文专栏, 游戏
Delphi 多线程知识
作者: formiss (1 篇文章) 日期: 一月 13, 2012 在 4:32 下午
评论 (2)
1-1 多线程的基本概念 WIN 98/NT/2000/XP 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的。 多线程带来如下好处:(自己阅读) 1)避免瓶颈; 2)并行操作; 3)提高效率; 在多线程中,通过优先级管理,可以使重要的程序优先操作,提高了任务管理的灵活性。 另一方面,在多CPU 系统中,可以把不同的线程在不同的CPU 中执行,真正做到同时处理多任务(Win 98 只是模拟的,而Win/NT/2000是真正的多CPU同时操作)。 多线程的两个概念: 1)进程:也称任务,程序载入内存,并分配资源,称为“一个进程”。 注意:进程本身并不一定要正在执行。进程由以下几部分组成: a>一个私有的地址空间,它是进程可以使用的一组虚拟内存地址空间; b>程序的相关代码、数据源; c>系统资源,比如操作系统同步对象等; d>至少包含一个线程(主线程); 2)线程:是程序的执行单位(线程本身并不包括程序代码,真正拥有代码的是进程),每个进程至少包括一个线程,称为主线程,一个进程如果有多个线程,就可以共享同一进程的资源,并可以并发执行。 线程是进程的一个执行单元,是操作系统分配CPU ...
分类: 博客征文专栏, 并行计算
八款开源 Android 游戏引擎 (巨好的资源)
作者: iamsheldon (1 篇文章) 日期: 一月 13, 2012 在 4:30 下午
评论 (1)
初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界接触不够,所以对它们的存在茫然不知罢了。 下面我就罗列出八款常见的Android游戏引擎,以供有需要者参考(收费,下载量过小,不公布源码,以及鄙人不知道(-_-)的引擎不在此列)。 1、Angle Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGL ES技术开发。该引擎全部用Java代码编写,并且可以根据自己的需要替换里面的实现,缺陷在于文档不足,而且下载的代码中仅仅包含有少量的示例教程。 最低运行环境要求不详。 项目地址:http://code.google.com/p/angle/ 2、Rokon rokon是一款Android 2D游戏引擎,基于OpenGL ES技术开发,物理引擎为Box2D,因此能够实现一些较为复杂的物理效果,该项目最新版本为 2.0.3 (09/07/10)。总体来说,此引擎最大的优点在于其开发文档相当之完备,并且项目作者对反馈Bug的修正非常之神速,所以该框架的使用在目前也最为 广泛,有人干脆将它称为Cocos2d-iPhone引擎的Android版(业务逻辑和编码风格上也确实很像)。附带一提,国内某个需要注册会员才能下 ...
分类: Android 开发, 博客征文专栏, 游戏
利用Windows API 多线程编程解决“哲学家进餐问题”
作者: wgj200123 (1 篇文章) 日期: 一月 13, 2012 在 4:28 下午
评论 (0)
哲学家进餐问题描述: 有五个哲学家,他们的生活方式是交替地进行思考和进餐。哲学家们公用一张圆桌,周围放有五把椅子,每人坐一把。在圆桌上有五个碗和五根筷子,当一个哲学家思考时,他不与其他人交谈,饥饿时便试图取用其左、右最靠近他的筷子,但他可能一根都拿不到。只有在他拿到两根筷子时,方能进餐,进餐完后,放下筷子又继续思考。 01.#include 02.#include 03. 04.#define P(S) WaitForSingleObject(S, INFINITE) //P操作 05.#define V(S) ReleaseSemaphore(S, 1, NULL) 06.#define NUMBERS ...
分类: 博客征文专栏, 并行计算
案例研究:使用英特尔GPA优化《兵王》游戏的性能
作者: Cage Lu (Intel) (3 篇文章) 日期: 一月 6, 2012 在 3:59 下午
评论 (0)
作者:英特尔:卢卷彬, Kiefer Kuah 巨人:余娜娜 下载PDF版本:使用英特尔GPA优化《兵王》游戏的性能 1. 介绍 《兵王》是由巨人网络公司旗下,上海巨贤公司耗时两年自主研发的一款未来战争MMORGP。《兵王》使用了优秀的3D引擎技术,在声光特效方面有极其优秀的表现。为了使《兵王》能够流畅的运行在更多玩家的机器上,我们在英特尔 ...
分类: 图形和视觉计算, 游戏
标签:GPA, 性能优化, 游戏
OpenCV学习笔记(五)——2.0以上版本和以下版本的数据兼容
作者: yang_xian521 (5 篇文章) 日期: 一月 6, 2012 在 3:59 下午
评论 (0)
都知道,2.0版本对之前的OpenCV数据结构进行了大幅度的修改。但对之前版本的兼容是一个很重要的事情。这节就主要讨论这个问题 首先来看一下2.0版本对之前版本的进行了哪些修改 1.采用了新的数据结构Mat作为图像的容器,取代了之前的CvMat和lplImage,这个改动不是太复杂,只需适应一下新东西,而且可以自由转换 Mat I; IplImage pI = I; CvMat mI = I; 对于指针的操作要相对复杂一些,而且还要注意内存的释放,我这里不推荐用老版本的数据结构,例如: Mat I; IplImage* pI ...
分类: 图形和视觉计算
OpenCV学习笔记(四)——新版本的数据结构core
作者: yang_xian521 (5 篇文章) 日期: 一月 6, 2012 在 3:59 下午
评论 (0)
2.0新版本对数据结构进行了大幅修改: 定义了DataType类 定义了Point_模板类,取代了之前版本的CvPoint、CvPoint2D32f 定义了Point3_模板类,取代了之前版本的CvPoint2D32f 定义了Size_模板类,取代了之前版本的CvSize和CvSize2D32f 定义了Rect_模板类,取代了之前版本的CvRect RotatedRect模板类, TermCriteria模板类,取代了之前的CvTermCriteria,这个类是作为迭代算法的终止条件的,这个类在参考手册里介绍的很简单,我查了些资料,这里介绍一下。该类变量需要3个参数,一个是类型,第二个参数为迭代的最大次数,最后一个是特定的阈值。类型有CV_TERMCRIT_ITER、CV_TERMCRIT_EPS、CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,分别代表着迭代终止条件为达到最大迭代次数终止,迭代到阈值终止,或者两者都作为迭代终止条件。以上的宏对应的c++的版本分别为TermCriteria::COUNT、TermCriteria::EPS,这里的COUNT也可以写成MAX_ITER。 Matx模板类。Matx模板类是对Mat类的一个拓展,从Matx类有派生出Vec类,又Vec类又派生出Scalar_类,取代了CvScalar 定义了Range类指定了一个序列的一个连续的子序列 定义了Ptr类用来对老版本的数据结构进行指针操作,更安全有效,可以防止内存的不正常使用。 最最重要的定义了Mat类来表示矩阵,取代了之前的CvMat和lplImage。Mat结构支持的操作有: 构造析构函数Mat和~Mat 对=、MatExpr、( )、CvMat、IplImage进行了运算符重载 row、col函数 rowRange、colRange 类似matlab的运算操作diag、t、inv、mul、cross、dot、zeros、one、eye 复制转换变形clone、copyTo、convertTo、assignTo、setTo、reshape、create、addref 其中copyTo函数有个妙用,不但可以复制Mat,还可以通过mask提取出感兴趣的部分 数据的操作release、resize、reserve、push_back、pop_back、locateROI、adjustROI Mat的信息total、isContinuous、elemSize、elemSize1、type、depth、channes、step1、size、empty 定位ptr、at、begin、end 还做了几个扩展类Mat_、NAryMatlterator、SparseMat、SparseMat_取代了之前的CvSparseMat。这些类的操作运算与Mat大同小异,类声明参考core的具体头文件 当然,新版本对老版本的数据结构和函数依然支持。 新版本还在这些结构里支持dft、dct变换,我这里讲一下我的新发现PCA类、SVD类 PCA类有构造函数PCA,运算符重载(),project,backProject。SVD类有构造函数SVD,运算符重载(),compute,solveZ,backSubst 这里介绍几个我使用过的实用函数: inRange函数可以检查Matsrc的内容是否在Matlower、Matupper之间,输出结果是一个uchar型矩阵,1表示在两者之间,否则为0,值得注意的是,Matlower,Matupper也可以用Scalar的格式 bitwise_xxx函数对两个矩阵进行位运算,结果保存在第三个矩阵当中 mixChannels函数可以实现矩阵的指定通道复制到新矩阵的指定通道 总之,新版本支持更多的数学运算,还支持一些画图操作
分类: 图形和视觉计算
OpenCV学习笔记(二)——新版本模块结构
作者: yang_xian521 (5 篇文章) 日期: 一月 6, 2012 在 3:58 下午
评论 (0)
还是老话题,2.0版本对OpenCV可是进行了大刀阔斧的改革,用c++重新了大部分结构,而不是1.X版本中的c结构。这些模块包括: core——定义了基本数据结构,包括最重要的Mat和一些其他的模块 imgproc——该模块包括了线性和非线性的图像滤波,图像的几何变换,颜色空间转换,直方图处理等等 video——该模块包括运动估计,背景分离,对象跟踪 calib3d——基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建 features2d——显著特征检测,描述,特征匹配 objdetect——物体检测和预定义好的分类器实例(比如人脸,眼睛,面部,人,车辆等等) highgui——视频捕捉、图像和视频的编码解码、图形交互界面的接口 gpu——利用GPU对OpenCV模块进行加速算法 ml——机器学习模块(SVM,决策树,Boosting等等) flann——Fast Library for Approximate Nearest Neighbors(FLANN)算法库 legacy——一些已经废弃的代码库,保留下来作为向下兼容 还有一些其他的模块,比如FLANN算法库、Google测试包、Python bingdings等等。
分类: 博客征文专栏, 图形和视觉计算
OpenCV学习笔记(三)——Mat,图像的新容器
作者: yang_xian521 (5 篇文章) 日期: 一月 6, 2012 在 3:58 下午
评论 (0)
自从版本2.0,OpenCV采用了新的数据结构,用Mat类结构取代了之前用extended C写的cvMat和lplImage,更加好用啦,最大的好处就是更加方便的进行内存管理,对写更大的程序是很好的消息。 需要注意的几点: 1. Mat的拷贝只是复制了Mat的信息头,数据的指针也指向了被拷贝的数据地址,而没有真正新建一块内存来存放新的矩阵内容。这样带来的一个问题就是对其中一个Mat的数据操作就会对其他指向同一块数据的Mat产生灾难性的影响。 2.建立多维数组的格式是这样的 int sz[3] = {2, 2, 2}; Mat L(3, sz, ...
