编程工具
linxxx3
CUDA,Phi,Multi-core Parallel programming
展开
-
gprof使用
转自:http://hi.baidu.com/zojoyo/blog/item/0ad631ee9aee302e2cf5341f.html gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释转载 2010-03-29 15:40:00 · 1095 阅读 · 0 评论 -
f77与gfortran在external symbol(外部符号)上的区别,注意下划线
今天先简单写一下,以后完善一篇C-fortran互相调用要注意的要点 ^_^!!!实验平台 CentOS 5.3如果.f文件中的函数名称都不含有下划线“_”,f77与gfortran编译出的.o文件中,导出的外部符号是相同的,可以用nm命令查看。例:add.fsubroutine add(a, b, sum)……$ f77 -c add.f$ nm add.o00原创 2012-02-13 05:19:49 · 689 阅读 · 0 评论 -
用汇编调试的方法窥探库函数的实现
这篇笔记的起因是我想要偷窥一下IntelMKL库中spmv的实现细节,有可能的话看是不是可以在汇编层面做一些优化的工作。需要分析的MKL库函数是:void mkl_scsrmv (char *transa, MKL_INT *m, MKL_INT *k, float *alpha, char *matdescra, float *val, MKL_INT *indx,MKL_INT *pntr原创 2012-09-10 16:03:51 · 850 阅读 · 1 评论 -
scp 出现 protocol error: bad mode 错误的解决过程
刚碰到的一个诡异问题,两台配置完全相同的实验机,用scp传文件,出现“protocol error: bad mode”错误。一看基本超出我能处理的范围,首先求助google,大多数回复是基于字面的猜测,是不是TCP/IP等协议不匹配的问题。但是首先ssh登录没有问题,只是scp才出错,不太可能是真的协议问题;并且两台机器的软硬件配置是相同的,排除。直到某国外论坛上看到有一个回复是原创 2012-10-10 17:47:43 · 2625 阅读 · 1 评论 -
GNU和Intel的debugger在使用方便性上的比较
GNU的调试器就是大名鼎鼎的gdb,Intel对应的产品是idbc,大体上命令和使用方法都是一样的,但是使用的方便性上,也就是调试时呈现的方式稍有不同。实际gdb也可以调试icc编译的程序,但是会丢失一些信息,使断点等的定位不准,多线程的调试不能进入并行区等,不推荐。idbc最让人不爽的一点,是使用list (l)命令显示源码,会从当前行的前几行开始,这样连续使用list 的话,打原创 2012-12-19 17:42:38 · 698 阅读 · 0 评论 -
vim在xshell等终端下的配色方案,推荐darkburn
用过的都知道,xshell默认的配色下,vi的注释颜色非常不友好,其他配色也存在对比度低的问题。社区里有个名叫darkburn的配色方案,用过之后欲罢不能啊,如果结合 :set t_Co=256 (设为256色方案),用起来就更完美了。背景呈暗绿色,文字反白,很舒服。配色脚本下载:darkburn.vim ,安装方法页面上有讲。csdn不能上传附件,可惜了。 vim.org原创 2011-04-29 19:38:00 · 8655 阅读 · 0 评论 -
关于函数的calling convention(调用规范)
最近做C和汇编的混合编译时,掉进的一个坑,记一笔。对于混合编程,最需要注意的地方是平台层面的ABI (application binary interface) 和语言层面的calling convention。这次的坑:caller是C语言函数,callee用汇编写的。C函数里的实参用的int型,汇编函数输入需要long型。在64位平台的汇编,要求INTEGER类型的参数原创 2013-02-20 19:27:08 · 599 阅读 · 0 评论 -
拷贝或者迁移openmpi
很多时候你会想要把一台机器上已经安装的openmpi 工具拷到其他机器上直接用,而不必在每一台机器上都重新安装一次。如果保证目标机器的openmpi文件夹路径与安装源的一致,那么没有问题。如果想换一个文件夹,即使是在同一台机器上迁移,openmpi是跑不起来的,原因是二进制程序里hard code了安装时的prefix 路径。好在很早(1.2.1 版本以后)官方对这个就给了一个解决方案原创 2013-04-03 18:20:21 · 529 阅读 · 0 评论 -
Intel Transactional Synchronization Extension (TSX) 事务性同步扩展
这是一份Intel IDF2013上的讲座笔记。TSX是新一代Haswell架构上,通过硬件支持的事务性内存(Transactional Memory)解决方案。1. 动机一句话概括Intel的事务性同步扩展(Transactional Synchronization Extension, TSX)的动机:粗粒度锁保证的事务性操作,在高并发下性能下降,作为细粒度锁方案的一种替代,原创 2013-04-11 14:34:46 · 1394 阅读 · 0 评论 -
matlab导入数据的方法
在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍 MATLAB中文件的读写和数据的导入导出。13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。13.1.1 文件转载 2010-08-25 17:34:00 · 12804 阅读 · 0 评论 -
screen,一个远程提交作业的工具,提交完成就可以断开连接
<br />用xshell登陆到远程机器上运行长作业的时候,如果xshell会话意外关闭(比如本地服务器重启了),作业会被终止,但是用screen环境运行的作业,在退出(deattach)screen之后,仍然在远程服务器运行,xshell可以关闭,笔记本可以拿走,并且以后可以通过screen重新连接到deattach之前的运行环境,很方便。下面是简单的使用方法:$ ssh remote_machineremote_machine $screen -S longjob // 创建窗口, -S 后原创 2011-03-17 19:24:00 · 1082 阅读 · 0 评论 -
linux下svn命令
svn在linux下的使用(svn命令)1、将文件checkout到本地目录svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co2、往版本库中添加新的文件 svn add file 例如:svn add test.php(添加t转载 2010-03-29 15:43:00 · 239 阅读 · 0 评论 -
perl写的测试结果比较
刚刚学的perl,就写了一个半自动比较测试结果的程序。之所以是半自动,就是把两个程序的测试输出相减,然后用眼看。以后再写个更智能的。而且这个通用性也不好。不过哪本书上说的是写这种脚本如果太追求完美,花时间太长也不合算,是不?上代码: #!/usr/bin/perluse strict;#print @ARGV;my $file1=shift @ARGV;my原创 2010-04-30 00:00:00 · 407 阅读 · 0 评论 -
GCC的可变参数宏,轻松实现自定义的调试输出
gcc的预处理提供的可变参数宏定义真是好用:#ifdef DEBUG #define dbgprint(format,args...) / fprintf(stderr, format, ##args)#else #define dbgprint(format,args...)#endif轻松实现自定义的调试输出,不用再头疼怎么向print转载 2010-05-21 02:32:00 · 417 阅读 · 0 评论 -
动态语言兴起及程序库
动态语言兴起及程序库作者:virushuo 发表于 2006-07-28 01:07 最后更新于 2006-07-28 01:07版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。http://blog.devep.net/virushuo/2006/07/28/post_32.html发于程序员2006年5月,有删节和修改。今天突然想起来,觉得还值得拿出来看看,就贴blog 上了,有一些和tiny讨论获得的较新鲜的观点,欢迎拍砖。让我们倒退到6转载 2010-08-23 10:55:00 · 329 阅读 · 0 评论 -
linux下Mercurial Hg的配置方法
这个工具在国内很少人使用,所以中文资料匮乏.只有官方的website上有一些少得可怜的中文资料了.不过总体上来说,hg还是比较好用的。这里绍一下hg服务器的配置。关于hg在基本用法参见mercrial的官方网站。在做以下操作时,请到 http://www.selenic.com/mercurial/下载安装hg.1.建立用户hgrepo其它用户将用这个账户用hg服务器push代码。useradd hgrepo -d /home/hgrepo # add user hgrepopasswd hgr转载 2010-11-05 14:50:00 · 2559 阅读 · 0 评论 -
x86平台上sse intrinsic中的操作数类型
一个同事的问题,让我澄清了很久以来对sse intrinsic 中的比如 __m128、__m128d 等类型的操作数的误解,所以在此记下来。intrinsic 的写法都在手册上,这里就不抄了……比如一个双精度向量乘法的intrinsic:__m128d _mm_mul_pd ( __m128d a, __m128d b ) ,我一直以为这里的 __m128d 类型必须是单个变量(原创 2013-05-17 18:41:24 · 531 阅读 · 0 评论