共 1,395 篇文章
共 6,621 篇文章及评论
- 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)
帖子位于 "博客征文专栏" 分类 
本专栏用于展示英特尔软件网络的用户提交的“多核技术博客竞赛征文”作品。
我的Android游戏引擎 — Cyclone 第2章 Android开发环境与真机调试
作者: andrewfan123 (1 篇文章) 日期: 三月 22, 2012 在 5:28 下午
评论 (0)
本章概要: 1、JDK、AndroidSDK、Eclipse以及相关插件的安装。 2、Android常用开发工具的使用方法介绍 3、第一个Android应用程序Hello World 2.1 开发环境搭建 Android应用程序程序框架是基于Java的,因此,我们首先需要Java的环境,也就是JDK,然后是开发Java的IDE(集成开发工具),我们选择Eclipse,这也是众多Android开发者所常用的开发工具。有了JDK和Eclipse,我们可以使用Eclipse来编写Java代码,并通过JDK来执行Java应用程序了。但是我们需要开发Android,还需要Android SDK,Android SDK可以用来模拟Android终端的运行环境,让我们在个人电脑上执行Android应用程序。一般来说,我们也不需要直接操作Android SDK,而是通过Google提供的一个Eclipse插件ADT(AndroidDevelopment Tools)来间接跟Android SDK打交道,我们只要告诉ADT我们Android SDK在本机上的存放目录即可。 2.1.1 JDK配置 1、开发Android需要JDK1.5以上,最好使用1.6版本,不要使用最新的1.7版本,JDK不是越新越好,SDK的开发人员也不太可能针对最新的JDK立刻进行兼容性测试和推出新的版本,因此尽量使用官方建议使用的版本,在这里,我们使用1.6。下载地址:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html 注意下载“Java ...
分类: Android 开发, 博客征文专栏, 游戏
MFC 中的多线程(Work线程)
作者: yongsheng123 (1 篇文章) 日期: 三月 22, 2012 在 5:28 下午
评论 (0)
MFC中的线程分为两种,我用到的是Work线程,主要用于后台计算等等,不用和用户交互。 (1)首先,在需要建立多线程的那个类的实现文件 *.cpp中,定义以下全局变量, struct threadInfo //一个信息结构体 { depthDlg* DlgHandle;//对话框的指针,用于传入参数 }; threadInfo Info; //定义一个结构体变量 UINT Thread_Kincet(LPVOID lpParam); //多线程函数 其中,第一个threadInfo ...
分类: 博客征文专栏, 并行计算
android 3D 游戏实现之再谈碰撞
作者: simdanfeg (1 篇文章) 日期: 三月 22, 2012 在 12:31 下午
评论 (0)
接着上一篇jpct-ae,发现已经过去半年,现在都2012了。笔者在这过去的半年里大部分是为了生计奔波,大四真是一个令人难忘的学期。几经辗转,终于在自己喜欢的岗位上尽职尽责了。既然已定了饭碗,就也不自量力学着别人著书立说,或也能青史留下一笔。现在就一起去看看怎么个“深入”法。 1,深入碰撞原理 jpct-ae引擎的碰撞分为:线碰撞、球体碰撞、随圆碰撞 三种,今天的代码原为jse版本,笔者将其转为android版并详加注释,希望对大家有帮助。 2,代码解析 01.package com.threed.jpct.example; 02. 03.import java.lang.reflect.Field; 04. 05.import javax.microedition.khronos.egl.EGL10; 06.import javax.microedition.khronos.egl.EGLConfig; 07.import javax.microedition.khronos.egl.EGLDisplay; 08.import javax.microedition.khronos.opengles.GL10; 09. 10.import android.app.Activity; 11.import android.opengl.GLSurfaceView; 12.import ...
分类: Android 开发, 博客征文专栏, 游戏
Android 游戏开发坐标
作者: freestyleboy21 (1 篇文章) 日期: 三月 22, 2012 在 12:30 下午
评论 (0)
1、Android中的坐标系统 在Android系统中,屏幕的左上角是坐标系统的原点(0,0)坐标。原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向。 2、屏幕的宽和高 为了在屏幕中的合适位置绘制图形,我们需要使用屏幕的宽和高作为参考,来确定绘制图形的位置。要获得屏幕的宽和高,首先从Activity对象中获得WindowManager对象,然后从WindowManager对象中获得Display对象,再从Display对象中获得屏幕的宽和高。 // 获得屏幕的宽和高 WindowManager manger = getWindowManager(); Diaplay diaplay = manager.getDefaultDisplay(); int screenWidth = ...
分类: Android 开发, 博客征文专栏, 游戏
一个简单的游戏服务器框架
作者: apengjiang (1 篇文章) 日期: 三月 22, 2012 在 12:30 下午
评论 (51)
最近一段时间不是很忙,就写了一个自己的游戏服务器框架雏形,很多地方还不够完善,但是基本上也算是能够跑起来了。我先从上层结构说起,一直到实现细节吧,想起什么就写什么。 第一部分 服务器逻辑 服务器这边简单的分为三个部分,客户端的连接首先到达网关服务器,网关这里有个线程用来监听来自与客户端的连接,然后在将这些数据发送到游戏逻辑服务器上,这个逻辑游戏服务器上,数据的交互就是通过与数据服务器进行交互。RecordServer专门用来处理与数据库的连接,查询这些事情。当然为了游戏服务器能够最大程度的不卡,肯定就得规定好网关服务器上的连接数量,免得像我们号称流畅的铁道部订票网络一样做个卡B,想想玩一局dota被卡的悲剧吧。当我们要做一个大型网游时,这三个服务器显然不够。当然在自己写的小游戏的时候就无所谓了,几个服务器全部架设在自己的破笔记本上,不就是启动几个程序而已。 这个感觉写得就差不多了,到细节吧。 第二部分 实现细节 这个就比较乱了,零零散散的,随便写了。这里很多都是对各种工具的封装,以便于自己 在项目的使用 1.make 项目这么多目录,这么多子目录,肯定得用工具去编译了,使用aclocal,automake,autoconf,make,就把我们的程序编译好了,编写自己configure.in文件,定义编译选项、链接库等等一系列乱七八糟的东西,然后对每个需要编译的子项目编写Makefile.am,有的需要要编译成库的,比如base等基类这些,其他的都编译成可执行文件了,GatewayServer,LogicalServer,RecordServer。 2.套接字封装,epoll使用 linux里,我们使用socket来读写网络上的数据,这个很简单了,gateway上一个客户端连接过来,我们就为它分配一个socket 描述符了,在网关上,一个线程用来accept,一个线程用来做数据的处理,当accept一个连接请求后,放到数据处理的线程,接受到一个数据,然后直接转发到logical server上,我们使用epoll_wait,来处理套接上的读写处理。每n ms处理一次循环,每次循环中使用一次epoll_wait,一次把这些有事件的socket取出来。 3.数据加密解密,压缩解压 对网络上的数据,为了保证安全性,必须对它们进行加密解密处理,这个简单了,网上各种内容,这里就不说了(全部写完了,有时间再写)。对数据进行压缩,能减少带宽吞吐,就是简单的调用几个zlib函数的调用,不细说,在前面转发的《zlib使用》中有讲,发现自己太懒,实在是懒得打字了。 4.线程封装,互斥量,读写锁 这些都是简单的使用RAII或其他方式,对这些东西进行一次本地封装。(应该得写一个线程池去管理这些线程,todo) 5.数据库封装 使用mysql,使用mysql的C API函数,这个必须得封装一下,不是每次数据的处理,都得去做很多事情,实现一个本地的数据的Field(列),Record(记录),Table(表),DataBase(数据库),RecordSet(查询结果集)。制作一个数据库连接句柄MysqlHandle,处理对数据库的连接,处理等,实现一个HandlerPool,,每次从Pool中取出一个句柄来对数据库进行查询,免得每次都去重新连接,什么的。 6.自己的内存池 在之前分享的文章中《内存池技术详解》《编写自己的内存分配器》,自己的《内存池应用》,已经很详细的说明了,内存池的制作,当然我在这里还是有一些改动的,但是大概思路就是这些了。 7.有一个状态机的实现 这个也在自己之前写的那个状态机相关的文章里,也做记录了。哈哈,实在是不想继续码字了,但是还是坚持下去。 8.lua与c++交互框架 这个暂时写了一半,等全部完成了,再来弄,反正就是像npc处理这些,脚本处理这些,使用tolua++。 9.tinyxml封装,正则表达式封装 tinyxml一个轻量级的xml解析器,很简单,反正是把这些现成的东西拿来自己用。正则表达式没有进入c++标准,但是还是很多现成的正则表达式的处理,直接用linux库下的regex.h,就是编译正则表达式,匹配结果这些, 10.log系统 一个项目怎么能没有自己的日志系统呢,反正就是打日志,往文件里面写东西,用std::fstream轻松搞定,定义好日志级别:error / debug ...
分类: 博客征文专栏, 服务器, 游戏
MMORPG 游戏服务器端设计
作者: weiqubo (3 篇文章) 日期: 三月 22, 2012 在 12:30 下午
评论 (0)
之前有过一篇介绍游戏服务器端的博文 http://blog.csdn.net/liuxialong/archive/2011/06/12/6539762.aspx 但是篇幅太长,而且过于关注细节,适合深读。 这里给出一种宏观把握MMORPG服务器设计的文章,适合入门,读完后对服务器端的设计能有大概的掌握,方便对感兴趣的部分进行深入了解。 1、首先是常见的服务器端结构,其中包括:登陆服务器、网关服务器、数据库服务器(账号数据库、角色数据库、地图数据库等)、聊天服务器、地图服务器、日志服务器等。下图为一个游戏大区的服务器群架构。所谓大区的意思,就是在打开客户端,进入游戏后,需要先选择大区,如:华南一区、华东电信等,进入大区后,再挑选服务器。下图的设计可以作为一个大区的架构使用。 2.登陆服务器 相应的工作流程为: 3. 网关服务器 工作流: 4. 地图服务器 工作流:
分类: 博客征文专栏, 服务器, 游戏
多线程伪共享 (false sharing) 问题分析
作者: realxie123 (1 篇文章) 日期: 三月 22, 2012 在 12:29 下午
评论 (1)
在多核的CPU架构中,每一个核心core都会有自己的缓存空间,因此如果一个变量如果同时存在不同的核心缓存空间时,就会出现伪共享(false sharing)的问题。 此时如果一个核心修改了该变量,该修改需要同步到其它核心的缓存。 在linux执行cat /proc/cpuinfo 来查看cpu的缓存的行大小: cache_alignment : 64, 在目前的Intel处理器中cache是64B对齐的,因此K * 64与(K + 1) ...
分类: 博客征文专栏, 并行计算
C++编译器到底能帮我们把代码优化到什么程度?
作者: hengyunabc123 (1 篇文章) 日期: 三月 22, 2012 在 12:28 下午
评论 (1)
一个简单的累加求和程序: 01.TYPE S=0; 02.for(int i = 0;i < SIZE; i++) { 03. S ...
分类: 博客征文专栏, 开放源代码, 软件开发工具
移动Web应用程序开发HTML5篇 (九) Web Storage API
作者: Dawei Cheng 程大伟 (Intel) (43 篇文章) 日期: 三月 21, 2012 在 10:59 上午
评论 (0)
介绍 本系列博客将主要介绍如今大红大紫的移动Web应用程序开发最重要的三个工具:HTML5,JavaScript, CSS3。 本篇是HTML5介绍的第九篇,主要介绍HTML5的网络存储接口(Web Storage API)。 相关文章: 移动Web应用程序开发 HTML5篇 (一) HTML5简介 移动Web应用程序开发 HTML5篇 (二) 新功能介绍和测试 移动Web应用程序开发 ...
分类: 全国大学生软件创新大赛专栏, 博客征文专栏, 移动技术, 英特尔® 软件网络 2.0, 软件技术学习及认证
标签:Web Storage, web开发, 移动开发
云计算异构集群系统存在的问题
作者: pop_xiaohao (1 篇文章) 日期: 三月 20, 2012 在 1:34 下午
评论 (0)
异构集群系统存在的问题 现有的Hadoop调度器都是建立在同构集群的假设前提下,具体假设如下: 1)集群中各个节点的性能完全一样 2)对于reduce task,它的三个阶段:copy、sort和reduce,用时各占1/3 3)同一job的同类型的task是一批一批完成的,他们用时基本一样 实际当中却不然,集群系统需要面对: 1)处理机具有不同计算速度 2)通信能力和存储容量 3)数据局部性问题 如何调和不同处理机计算速度,不同机器之间数据传输问题以及因数据聚集带来I/O传输和网络消耗问题,都是在构架异构集群需要考虑的问题。总之把复杂应用的所有任务合理地调度分配到异构计算系统的各个处理机上, 并追求整个应用的最小完成时间的任务调度问题, 是异构集群计算系统提高性能的一个非常关键的问题。 其中这些问题可以统一理解为,hadoop集群在运行时分配到不同节点上相同计算任务在运行过程当中在开始时间、处理速度、等上存在不一致的情况下,照成有的节点计算起来一下子计算完了,有些任务需要等待很长的时间。总之就是各个节点任务结束不一致,这就要求我们采取方法让任务执行完成基本一致,这就需要我们侦探落后任务。 解决方法:现有的Hadoop调度器存在较大缺陷,主要体现在探测落后任务的算法上:如果一个task的进度落后于同类型task进度的20%,则把该task当做落后任务(这种任务决定了job的完成时间,需尽量缩短它的执行时间),从而为它启动一个备份任务(speculativetask)。如果集群异构的,对于同一个task,即使是在相同节点上的执行时间也会有较大差别,因而在异构集群中很容易产生大量的备份任务。减少过多的备份任务也是需要我们考虑的问题。基于现在情况下存在的问题解决方法可以参考Late调度算法这里就不做深入分析。
