CUDA和OpenCL

July 14th, 2011 4 comments
CUDA_Arch

接前文“GPGPU”。 虽然我们可以使用已有的图形API来调用GPU,但是通过前文的分析,这个过程冗长且复杂。严重违反了程序员的优雅、和lazy原则。需要去学习图形学的一些知识,了解texture、shader等图形学专用概念,而且需要学习CGSL或者HLSL等shader着色语言。而且还要熟悉OpenGL和DirectX等图形学API,这一箩筐的知识没有一个一年半载是搞不定的。而且这样的方式不符合正常程序的编写习惯,所以难以优化。

GPGPU简介

July 13th, 2011 no comment
GPU_moore

过去的一周时间研究了一下GPU做通用计算以及CUDA和OpenCL,下面会分几篇文章总结最近的成果。

简述软件包管理系统

July 5th, 2011 no comment

四月份写的一篇blog,就差个结尾,今天补上。 软件包管理是个很大的话题,希望我能说清楚这事。

如何写一个为SSD优化的数据库?

July 5th, 2011 no comment

SSD应该是近几年来硬件技术最nb的革命,困扰计算机性能的最短木板--磁盘IO终于有了巨大的突破。而且SSD在未来的几年中会快速普及(我还琢磨着给我笔记本换SSD)。 前一段cm同学也想做一个MVCC支持的k-v数据库 ,现有的数据库都是根据几年前的硬件水平(小内存、无NUMA、机械磁盘)进行的设计的,不可能针对SSD专门优化,SSD上的MySQL性能提升应该是只用了SSD IOPS超高这一个特性。在SSD未来几年应该能广泛普及的前提下,针对SSD的数据库优化是必须的。集中查了查资料,聊聊想法,有不对的地方欢迎各位补充。

速度与激情5 — All is Team

May 23rd, 2011 no comment

今天终于去看了《速度与激情5》,村里的美嘉欢乐影城好久没去,四号厅感觉一般。 Toretto的团队领导力从《速1》,《速2》,《速4》到这部都表现的淋漓尽致,要是放在正常社会里,这哥一定是个nb的Team Leader。下面就说说这哥。

使用文件系统snapshot做数据库归档备份

May 12th, 2011 no comment
lvm

昨天下午的技术讨论会上说到了数据库的按时间点的进行实时备份和归档,当时的讨论都是基于日志如何来做。 这个问题需要做到以下几点: 因备份而引起的中断数据库服务的时间尽可能短; 能够迅速的让数据库使用备份的数据rollback; 归档的备份数据能在专门的备份机统一保存,方便本机失效后的处理; 如果可能,归档备份的数据能做到增量备份,以节省备份机的磁盘空间,同时方便快速传输。 从数据库本身解决这个问题,可能受困于已有的数据库设计和代码,不非常容易。换个思路,可以基于fs的snapshot来做。 在*nix系统下功能最强的snapshot首推zfs,本身支持文件系统快照,支持增量备份,并内置了zfs send工具能直接把备份快照、或增量备份快照发送到另外一台物理机器上(也必须是zfs)。但必须使用FreeBSD 8以上或者是 OpenSolaris。但是由于公司的机器都是GNU/Linux的,退而求其次选择LVM。 在家里的E8200 + Debian 6.0.0 i386系统上做了测试,首先是使用lvm创建分区,创建了一个名为main的60GB大小的Volume Group,同时在里面建立了一个名为main0的10GB的Logical Volume挂载“/”,并格式化为ext3。 拷入6GB的数据文件,然后创建snapshot: # lvcreate -s -L 7G -n snap-`date +%Y%m%d%H` /dev/main/main0 这一步消耗时间只有0.5s左右,而且测试了拷入20GB的数据文件,snapshot时间基本无变化,详细看截图: 然后在/dev/main/下新加入了snap-`date +%Y%m%d%H` LVM逻辑卷,可以挂载此snapshot分区: # mount /dev/main/snap-`date +%Y%m%d%H` ~/backup 随后就可以tar成gzip包,然后rsync集中保存了。 删除snapshot: # umount -f ~/backup# lvremove /dev/main/snap-`date +%Y%m%d%H` 对于数据库的操作来说,拿MySQL举例: # mysql –uroot –p -h localhost mysql> flush […]

FreeBSD在线开启ipfw

May 10th, 2011 no comment

在FreeBSD 7.1 amd64版下,由于默认的内核编译选项没有并加入以下内容: options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT 所以在启用ipfw的时候,会启用默认禁止的全部连接的规则,那么直接的后果是把ssh的连接踢下线,并切断外界到这个服务器一切端口的连接请求。 解决方案,在启用ipfw后,马上加入一条允许所有请求的规则: kldload ipfw && ipfw add 65534 allow ip from any to any 另外需要注意一点:绝对禁止使用/sbin/ipfw -q -f flush,会导致把上面这条手动添加的开放规则删除! 同时,如果想在重启后ipfw也开启生效,那么需要这样做: 在/etc/rc.conf里加入: firewall_enable=”YES” firewall_script=”/etc/firewall.sh” 同时/etc/firewall.sh的内容是 #!/bin/sh /sbin/ipfw -q -f flush /sbin/ipfw add 65534 allow ip from any to any 同时自定义的ipfw规则也可以向/etc/firewall.sh中添加,比如阻止118.215.66.135到本机80端口的连接,那么加入 /sbin/ipfw add 1 deny ip from 124.193.167.1 to any dst-port […]

macports安装db46的jni.h No such file or directory问题解决

May 1st, 2011 no comment

最近在我macbook上安装mercurial和git一直报错,而且都是在安装db46的时候,今天放假实在忍不了了,追了一下日志发现是jni.h头文件找不到:   :info:build /usr/bin/gcc-4.2 -c -I. -I../dist/.. -I/opt/local/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -pipe -O2 -arch x86_64 -fno-strict-aliasing ../dist/../libdb_java/db_java_wrap.c -fno-common -DPIC -o .libs/db_java_wrap.o :info:build ../dist/../libdb_java/db_java_wrap.c:123:17: error: jni.h: No such file or directory   这下简单了就是java的开发包需要update一下,于是在此下载最新的 Java for Mac OS X 10.6 Update 4 Developer Package Download 安装,问题解决。

Mac OS X下修改控制台的option(alt)为meta键

April 21st, 2011 no comment

在Mac OSX下的terminal里经常不由自主的是用alt + f、alt + b、alt + backspace来进行日常的操作,而且在emacs中alt+x+命令也是非常常用的快捷键,可是居然苹果电脑默认的option(alt)键不支持这个,只能用esc来代替了?这太不方便了。 找了一下,终于找到解决方法: 在控制台打开“偏好设置”,进入“键盘”的tab,然后把下面的”使用option键做为meta键“选中,即可完成以上功能。 PS,Mac OS X下修改网卡MAC地址: % sudo ifconfig en0 ether aa:bb:cc:dd:ee:ff

无题

April 4th, 2011 no comment

节假日了,能静下来想一想了。 给过去一段的工作、生活做一个总结。 团队,把这个团队从4个人,到现在的10个人,并且是我带过最强大的团队。尽我的一切可能去让项目和工作走上良性循环,梳理团队的工作,维护团队的利益。想尽办法的去帮助成员实现自身价值并让外界认可。以非常包容的心去努力融合每一个人。 项目,努力的去推动项目的进行,做了许多本应该不是由程序推动的事情。因为我觉的,这个项目的好坏直接影响了整个项目每个人未来5年甚至10年的事业和生活。为了保证项目能按照我们的期望进行下去,必须有一个人来谨慎的关注整个项目的执行过程,提出自己的意见。 工作,过去的一年也是最焦虑的一年,异常巨大工作压力,项目压力,团队负责人的责任感。非常想把这件事情做好的向往。可以说是全凭着一个信念在支撑我起早摊黑,义无反顾、忘我的投入到现在。 生活,一团糟。 这样的付出是否值得?这样的生活是否是我想要的? 又到了一个大坎,是否能过去? 我不知道。 PS,发完才知道这是我的第100篇日志,也顺道mark一下。

iphone升级iOS 1604错误解决

March 12th, 2011 1 comment

今天在公司给我iphone4升级到最新的iOS 4.3,尝试n多次一直是1604的报错。 关掉了卡巴斯基杀毒,换了台机器,换了数据线,居然还是报这个错。 神奇了难道让我手机变板砖?! 仔细Google了一番,原来在于windows XP下3个服务要打开,分别是: Messenger Terminal Services Telnet 去控制面板 -> 管理工具 -> 服务 里手动开启这三个服务即可。 没有深究为啥iOS升级需要这三个windows服务。而且报错如此不明,apple官方帮助页也没有提示。  

ipad2预测

March 2nd, 2011 no comment

在前一段预测了iphone5的改进,赶在ipad2发布前几个小时,也预测一下: 改变: CPU升级到A4 1.5GHz,单核 GPU升级到PowerVR 545 加入摄像头,很有可能是前置 内存升级到512MB 重量会减轻 会有支持CDMA2000的3G版 不变: 屏幕尺寸和分辨率 基本外形   几个小时后见分晓!

颐和园团城湖湖心岛探秘–治镜阁

February 26th, 2011 no comment
zhijingge

团城湖是颐和园最幽静也最漂亮的一部分,夏天的时候来这里游泳或者坐在湖边发一下午呆都是很惬意的。 一直好奇湖中心的小岛上有些什么,在06年的时候就想在冬天湖水结冰的时候登岛勘察,直到今天终于抢滩登陆。

sshd防止“防火墙断开空闲TCP链接”的设置

February 22nd, 2011 no comment

最近发现公司的的内网ssh登陆上服务器后不操作一段时间就会断线,同时如果一直在操作或有屏幕输出(类似tail -f /var/log/apache2/access.log),那么ssh就不会断线。 猜测是公司的防火墙有“断开空闲TCP链接”的策略,在/etc/ssh/sshd_config 内加入: ClientAliveInterval = 15 ClientAliveCountMax = 100 ClientAliveInterval的含义是每过15s,sshd会向ssh client发出一个询问是否在线的请求,正常的ssh client都会予以回应;同时ClientAliveCountMax设定了这种询问的最大失败值,在本例中如果sshd向client发出了100次讯问均没有得到回应,那么sshd会主动断开此ssh链接。

[转]热门3D游戏视觉效果名词简介

February 19th, 2011 no comment
22

一部又一部的游戏大作降临,每个游戏都声称要给玩家“真实”的体验。当然既然叫做游戏就不可能是真实的,但游戏制作商们都在不断想办法使游戏更加接近现实,使用各种3D效果去模拟现实中的种种现象。可能还有不少玩家朋友对这些视觉效果名词还不大了解,于是有了本文。本文就是用简单的语言,简要地介绍目前应用在游戏中的一些比较热门的视觉效果。

史蒂夫·乔布斯在斯坦福演讲原文

February 15th, 2011 no comment

昨天又看了一下Steve Jobs在Stanford的演讲,很真实,其中最重要的几句: Keep looking, and don’t settle. Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma, which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own innervoice, heart and intuition. They somehow already know what you […]

[转载]2010年互联网使用统计

February 4th, 2011 no comment
5

2010年互联网使用统计。记录备案。

iphone5硬件更新预测

January 27th, 2011 1 comment

iphone4虽然用着很爽,但是iphone5也呼之欲出了,下面也学学章鱼哥,预测一下其硬件改变:

公司搬家第一天

January 24th, 2011 no comment
20110124-234107.jpg

公司已经从西二旗搬到了大屯东,离我家的距离剧增。在西二旗上班骑自行车20min就到了。今天早上记录了一下上班所用时间: 早上8:30起床; 出门9:06; 走到车站即来公交 城铁上地9:25; 立水桥站9:55; 大屯东站10:08; 到达公司 10:20; 全程历时一小时十四分钟。 我所在的6号楼: BTW,6号楼2楼有很大的健身房和室内篮球馆,还有洗澡间,居然还有一个桑拿房!就差一个乒乓球室了。

两个重要的项目时间点

January 17th, 2011 no comment

今天和项目负责人确认了一下项目的两个重要时间点: 2011年12月 2012年5月 看来搬家后,整个铺盖卷住公司吧。