在OS X上使用OpenMP和MPI

自从Xcode的编译器从GCC变成clang之后,在OS X上使用OpenMP和MPI就变得很麻烦了。之前查了一下,貌似有clang-omp这个项目,但是配置起来似乎很麻烦。所以干脆直接在电脑上装了GCC跟OpenMPI。

首先你需要确保已经安装了Homebrew。在终端输入 brew -v 查看Homebrew的version。如果提示未安装,输入

来安装Homebrew(更多信息请访问http://brew.sh/)。

在使用Homebrew安装之前,请运行 brew doctor 来确保你的配置没有问题,如果有问题,请按照提示一项一项修改。

接下来输入

进行GCC的安装。其中 --without-multilib 是必须要有的,因为multilib在OS X上跟OpenMP冲突,可能导致OpenMP无法使用。GCC的安装过程比较缓慢,因为需要从零开始编译安装。一般编译过程在1~2小时左右,视机器情况而定。

Homebrew安装的GCC存放在 /usr/local/bin/gcc-5 中(GCC5.2.0版)。此时,系统中依然有 /usr/bin/gcc ,然而这个GCC是clang的链接。所以在编译时,需要使用类似 gcc-5 xxx.c -o xxx -fopenmp 进行编译,而不是使用默认的gcc。

接下来要安装OpenMPI,同样使用Homebrew

在使用mpicc编译时,需要注意,如果不做任何操作,mpicc会使用默认的gcc,也就是clang的链接来编译,使得编译出错。所以在编译之前需要设置环境变量

这样,mpicc就会使用gcc-5来编译了。

UPDATE

如果你需要编译C++文件,请使用 MPICXX 进行编译,并且指定环境变量为

UPDATE2 使用mpi4py

首先,安装python3。因为学校的Spartan集群只有python3环境有mpi4py。

使用homebrew安装的python3自带pypi。接下来就可以安装mpi4py了。

首先要确保你已经安装了openmpi (见上)。然后运行

就能安装mpi4py了。

测试:

如果import mpi4py之后没有报错的话,就说明装完了。

另外注意:

你要使用python3运行你的程序,请使用:

记住是python3不是python! 记住是python3不是python! 记住是python3不是python!

Macbook pro 8,1引导ubuntu的方法

按理说,在macbook中安装ubuntu应该像在macbook中安装windows一样简单,刻张光盘,然后引导就是了,可是偏偏2011年的MBP机型使用的硬件使用现有各种版本的ubuntu都引导不起来(包括linux3.0内核的ubuntu 11.10 beta1)。如果简单地使用光盘引导,在splash screen之后就会看到:

“(initramfs) Unable to finda medium containing a live file system”

这个问题困扰了我很久,在ubuntu.org.cn的论坛中提问也没有得到满意的答案。后来在国外网站上google了很久,才发现这是Linux内核在这个主板上面的一个bug,引导一半之后,系统就不认识光驱了。这个bug至今还没解决。

不过国外论坛上面已经有人给出了一个非常山寨,但是可行的解决办法,这个方法的操作如下:

解压ubuntu的iso镜像,将里面的文件全部拷贝到U盘里(注意ubuntu 11.10采用了新的技术,可能使mac os x认为iso镜像是损坏的,只能自己想办法把里面的内容提取出来了)。然后插着U盘开始用刻录好的ubuntu的光盘引导。引导到一半,系统不认识光驱了,但是它会发现U盘里存有live CD的文件,于是开始从U盘读取文件了,这样就能顺利地进入Ubuntu,并且可以进行安装。

当然,这只是在Mbp中使用linux的起点,安装好Ubuntu之后,你会发现各种各样的驱动问题。Ubuntu 11.10 beta1开始有专门的for mac版本,看说明似乎是对mac电脑进行过优化,所以推荐使用这个版本的镜像。就我今晚的测试来看,键盘和摄像头的驱动是可用的,无线网卡驱动无法找到,google了一下发现现有的内核还没法支持这个网卡,触摸板驱动是正常的,但是触摸板在Ubuntu下面的表现跟一坨屎一样,不知道怎么调整。

That’s all. Enjoy yourself.

在OS X/Linux下管理android手机

在windows下面,有几个软件能够非常方便地管理android手机。比较有名的是“豌豆荚”和“91手机助手”。有了这类软件,就可以在电脑上面方便地进行安装apk软件,截图,发短信,软件备份等功能。

虽然android是基于Linux的,Google公司的员工也多用Mac OS X做开发,但是在这两个平台下,恰恰就没有一个很好的可视化管理工具。

其实豌豆荚等软件能做的大多数工作,都是可以由android SDK下面的adb工具来完成。但是adb是面向开发者的,也是一个命令行工具。对于一般的用户来说,这么去使用就非常麻烦。

这里我推荐一个在os x和linux,甚至windows下面都能使用的管理软件:QTADB。顾名思义,这个软件就是用QT来做的ADB前端。由于QT的跨平台特性特别好,所以在三个主流平台都能使用。

目前这个软件还是处于不稳定阶段。所以需要下载三个部件才能完成安装。

这里以os x为例说明安装方法:

下载以下三个包:

http://www.mediafire.com/file/4hsyfnvvmq2lc5c/QtADB_0.8.0_osx.zip

http://www.mediafire.com/file/ck36odjkkqgr4an/qtadb.apk

http://www.mediafire.com/file/5d65vwzhir6g445/osx_binaries.zip

将QtADB_0.8.0_osx.zip和osx_binaries.zip解压缩到自定义的目录。并将qtadb.apk装入手机。

进入QtADB_0.8.0_osx.zip解压出来的文件夹,打开qtadb程序。第一次运行需要你指定adb文件夹路径。选择osx_binaries.zip解压出来的目录。点击确定就可以开启了。

其他平台的用户可以去http://qtadb.wordpress.com/download/ 下载相应版本的包。

至于这个软件怎么用,我就不在这里赘述了。要指出的是,os x版本是有几个bug的,比如files功能无法进入,phone info也无法进入。碰到这种情况只要在菜单栏点击相应的功能就能进入了。bug原因不明。

相对于豌豆荚这样的商业软件,这个软件的功能还是有很多不足的。而且目前也无法获得软件的源代码。不过作者说,完成整合之后就要开源了。

在Mac OS X上使用飞信

使用mac os x之后一直在想怎么上飞信。在网上搜了一下很多都是讲用mac-fetion这个软件。但是这个软件貌似一直没法登录。

我在用os x之前是一个ubuntu用户,所以我大致知道linux下面有两个fetion软件,一个是libfetion,一个是openfetion。libfetion就是mac-fetion的原型,是用C++写的,一段时间很火,但是这个工程后来不知道为什么就停滞不前了。去年的时候又冒出来openfetion这个软件。当然openfetion的诞生也是很早的事情,但是他的早期版本代码被人指责很糟糕,所以一直默默无闻。去年的时候openfetion重写了,有更多的人加入进去。软件的可用性非常强。在ubuntu里面我一直使用这个软件。前几天ubuntu 11.04正式发布之后,openfetion以及它的pidgin插件更是加入到ubuntu官方源里面去了,所以看起来前途比较光明。

openfetion项目主页: http://code.google.com/p/ofetion/

但是这个软件是GTK写的,一直没找到os x的移植。后来一想,既然openfetion有pidgin的插件,而Adium又是pidgin的os x移植版,那么很可能有openfetion的Adium插件。今天找了一下,果然找到了。

fetion-plugin-for-adium项目主页:http://code.google.com/p/fetion-plugin-for-adium/

于是乎,终于可以在os x下面用fetion了。

具体步骤是:

首先下载 Adium,并安装。

再下载 fetion-plugin-for-adium,并解压,双击就能安装到Adium了

最后运行Adium,新建一个fetion账号就行了。由于Adium也可以登录MSN,GTALK等IM账户,所以基本上可以使用一个软件挂几个账号了,非常方便。

不过openfetion的前途到底光不光明呢,其实是得看移动方面的。今天我特地问了openfetion的开发者@levin108关于飞信协议的事情,他说,飞信协议是不公开的,关于之后会不会有什么大变动他们也不好说。好在,中国移动现在没像腾讯那样到处打压三方客户端。希望他不要打压三方客户端。

 

OS X技巧之更改默认程序

双击一个文件,比如doc, mp3等,系统都会使用默认程序打开这个文件。如果要改怎么办?windows的方法是右击文件,选择打开方式->选择默认程序。或者是去控制面板修改。

OS X里面右击文件也有打开方式->其他。弹出来的窗口如下,看起来好像是选择改格式的默认程序。

但是用这个方式选择之后,会发现,只有这个文件的默认程序被更改了,而不是这类文件。比如说,你修改了1.jpg的打开方式为picasa,从此之后,1.jpg都是由picasa来打开。但是2.jpg又是原来的程序打开。

真正修改这类文件的打开方式是:

选中一个文件,选择command + i,或者右击->显示简介。找到如下的地方:

将“打开方式”设置成你需要的程序。然后点击全部更改。这样,所有的这类文件都会按照你指定的程序打开了。

用macbook pro两个星期,一些感受

用macbook pro两个星期了。对于OS X并不是很熟悉(至少很多快捷键我还是不太清楚,也懒得记了)。

由于是从 ubuntu转过来的,所以对unix环境还是比较熟悉的。更重要的是linux的经验让我不会做出诸如在macbook上面装windows作为主系 统,或者想方设法在mac os x上面跑迅雷之类的windows软件这样的蠢事(当然windows也不是没装过,为了做数据库的作业时用sql server,后来狠心删了,要用的时候再跑虚拟机算了)。

首先我要说的是,macbook pro的散热确实不怎么样,特别是用Bootcamp装windows的时候,能达到90度。这也是我把windows删掉的主要原因。平时倒是还好,但 是看flv视频的时候,又得上去。后来买了一个散热底座降温,因为是铝合金外壳,对着机身吹散热效果还是很好的。当然有钱的也可以买一个苹果专用的散热底 座,要300块多哦。。我是买了一个30块钱的。

这也上我不得不说,macbook最大特点就是贵。机器贵就不说了,周边产品都是贵的可 以,苹果的鼠标就要500多块,但是那玩意儿就是先进。专用散热底座要300块我就想不通了,不就是一块铝加上一个电风扇么。专用的键盘膜也要近300。 我买了一个大卡的,只要16。另外,苹果的视频转接线都是在160+的。因为它的接口特殊,就没有什么别的替代品。特别是我这代的macbook用了 thunderbolt作为视频转接口,所以更贵了。另外就是软件贵,app store里面屁一点大小的软件就要卖个价格,比如有个软件,作用就是在你顶栏显示你的ip地址,竟然卖0.99刀,实在是令人嗔目结舌。

然 后说说软件。对于mac os x的软件,我真不知道有什么好推荐的。苹果的app store是很好的地方,里面有很多优秀的软件,由于之前非常熟悉地使用ubuntu software center,所以自然就喜欢在app store里面淘软件。但是比起ubuntu软件中心来,里面的软件介绍里面多了个$符号。看看都是五六十刀的,再好的软件也都没兴趣了。当然,有软件的 地方就有盗版。悄悄地说一下,macx.cn估计是中国盗版mac软件的集中营了。所以。。。嘿嘿。。算了,不引导大家犯罪了。

由于是从 Linux过来的,所以我在上面装的软件大多带有浓厚的linux味道。比如办公软件,我装了libreoffice,写代码的还是用eclipse, netbeans,codeblocks之类的,当然多了一个xcode4,我也没怎么用,反正也不懂objective-c。浏览器我不太用 safari,还是用FF4和chrome(这里我得抱怨一下支付宝的mac平台插件竟然只支持safari,比linux平台还要差)。另外,还装了 matlab,mac版和linux版是通用的一张盘。其他的,amule, transmission, xmind, virtualbox, VLC, mplayerX(os x版的mplayer), songbird等等,也是沿用了我在linux下面惯用的软件。当然还有聊天软件啦(QQ FOR MAC明显比qq for linux好多了)。别的都不详细说了,到最下面列个表。

下面说说mac os x不足的地方和解决办法:

  • 对 于音乐文件的格式支持不好。在linux下面很常见的ogg和flac在mac上面竟然默认不支持。必须装一个叫XiphQT的插件,才能让itunes 放出ogg,理论上能放flac,不过不知道为什么我还是不能放。而在mac上面音乐播放器又只有那么一点点(可以说没有,只有itunes)。后来用了 一个在linux上面也用过的songbird,终于能支持全格式播放了。但是songbird没法用键盘上排的功能键控制音乐播放,这个蛮郁闷的。
  • 默 认不支持rar格式的压缩包。这个倒是很正常的,这个压缩格式是有版权的,谅苹果也不敢明目张胆的放上去。在ubuntu上面只要装一个unrar包就行 了,也不要钱。但是我在app store上面搜了半天,发现所有的支持解压rar包的软件都要钱的。于是选了一个izip,只要0.99刀,我就买了,这也是我到现在为止唯一买的 mac正版软件。话说回来,app store的付费真的很方便,就像支付宝卡通一样,不经过网银就能付钱了,所以不要担心IE问题。如果你有钱的话,建议都买正版。
  • 竟 然不支持NTFS格式磁盘的写入操作!!!这个实在是让人郁闷不已,如果不做任何操作的话,你的NTFS移动硬盘是没法写文件的。如果你格式化成mac日 志格式,那么windows是认不出来的。也就是有你没我的情况。当然这个情况也是可以解决的,老办法,装软件。Paragon NTFS这个软件就是为解决这个问题诞生的。装了以后,ntfs格式的磁盘就能进行写操作了。
  • 包管理没有ubuntu方便。这个就没解决办法了。对于开发人员来说linux的包管理再好不过了,在os x下面编译的时候碰到依赖问题就囧了。不过我在装一些软件的时候,也会出现包管理的界面,但是我不知道是不是可以像APT那样管理。

做上述的调整,mac os x基本上全能了。至少现在还不知道哪里需要改进的。

下面列出我使用的部分软件

  • 聊天工具:
    • QQ FOR MAC
    • iChat(os x自带,不能用msn,但是有gtalk)
    • Adium(pidgin的os x版,想用OTR加密,找了半天的包,猛然发现这个软件是集成的,非常好,以后发敏感词就不会被抓了)
  • 社交:
    • hotot(推特客户端,其实是chrome web store里面的软件,必须开chrome用。linux下面有桌面版,os x没 有。os x下面不知道有哪些支持三方API的推特客户端,至少我没找到)
  • 浏览器:
    • Firefox 4
    • chrome
    • safari
  • 开发工具:
    • eclipse
    • netbeans
    • codeblocks,这个打酱油用的。
    • xcode,从app store上面下载要差不多5刀,4.25G,太大,我从六维下载的,又快又不用钱。。。
    • matlab,这个不说了,巨贵无比,没人买正版
    • scilab,matlab的开源版本,不要钱
    • sequal pro,用cocoa写的mysql客户端,开源软件
    • smartSVN,java写的svn工具,收费的,巨贵,功能和win上的乌龟svn差不多
  • 学习类:
    • evernote(基于云同步的记事本)
    • xmind(心智导图,免费限制功能版)
    • freemind(同上,完全免费)
  • 邮件日历:
    • iCal,系统自带,支持和google calendar同步
    • Mail,系统自带,功能够了
  • RSS订阅:
    • Gruml,google reader的桌面版本
  • 系统监控:
    • iStat menus
  • 下载工具:
    • Speed Download,有点像迅雷,但是没那么快。付费软件。
    • amule,全平台的emule客户端
    • transmission,bt客户端
    • utorrent,bt客户端
  • 穿越用软件:
    • iPuff,不多说了,puff的mac版本,图标比起win来相当好看(什么软件到mac上面都相当好看)
  • 压缩/解压工具:
    • izip,用来解压zip,rar,7z等等格式的压缩包
    • Yemuzip,用来生成zip压缩包
  • 绘图软件:
    • photoshop,感谢张尔东的序列号。。。
  • 视频播放:
    • VLC
    • MplayerX(国人移植,强烈推荐)
  • 输入法:
    • SunPinyin,貌似我找不出mac平台下比这个更好的拼音输入法了。
  • 游戏:
    • 很多游戏都有相应的mac版本,比如暴雪系列的,所以玩星际魔兽什么的也不用专门开一个windows去跑,当然星际2国服好像只有win版的。我装的都是小软件,比如愤怒的小鸟mac版,植物大战僵尸mac版。。。
  • 办公软件:
    • libreoffice,也就是openoffice,linux下面的标准套餐,免费
    • iWorks套件,没怎么用过,似乎和MS OFFICE兼容的不好
    • 微软OFFICE,我没装过。。。我知道有这么个软件,但是听说和windows版本兼容也不好,干脆不装了。

 

不知道还有没有遗漏,大概就这些。

Continue Reading