在默认情况下,ld链接器会将libc、crt1.o等这些CRT和启动文件与程序的模块链接起来,但是有些时候,我们 可能不需要这些文件,或者希望使用自己的libc和crt1.o等启动文件,以替代系统默认的文件,这种情况在嵌入式系统或操作系统内核编译的时候很常 见。GCC提高了两个参数“-nostartfile”和“-nostdlib”,分别用来取消默认的启动文件和C语言运行库。
- What exactly is considered a "heterogeneous" cluster?
- Does LAM/MPI work on heterogeneous clusters?
- Do different versions of LAM/MPI constitute heterogeneous clusters?
- How do I install LAM on a heterogeneous cluster?
- How do I de<lambootde< across a heterogeneous cluster?
- How do I execute the right binary on each node for each architecture in a heterogeneous system?
- Can I mix 32 and 64 bit executables in a single parallel MPI job?
from:
程序员的自我修养:链接、装载与库1.2 C/C++运行库 11.2.1 C语言运行库
任何一个C程序,它的背后都有一套庞大的代码来进行支撑,以使得该程序能够正常运行。这套代码至少包括入口函数,及其所 依赖的函数所构成的函数集合。当然,它还理应包括各种标准库函数的实现。
注:gnuplot也好强大,可以作为介于matlab和gmt的一个画图工具了
source : http://darksair.org/wiki/Gnuplot.html#sec5
附带 http://www.gnuplot.info/screenshots/index.html#demos
Gnuplot
Introducing Gnuplot 使用 Gnuplot Gnuplot Interactive Environment Gnuplot Scripting Gnuplot for Real
Introduction to gnuplot — Plot Style
GNUPLOT使用手册
FILE * command;
command = popen("gnuplot","w");
///
fprintf(command,"set terminal png \n");
fprintf(command,"set output ‘test.png’\n");
fprintf(command,"set multiplot\n");
fprintf(command,"plot ‘%s’w lines\n",filename);
fprintf(command,"plot ‘%s’w lines\n",filtered_filename);
fflush(command);
/////
zz from:http://blog.chinaunix.net/u2/65114/showart_1099446.html
一、 基础篇:
在linux命令提示符下运行gnuplot命 令启动,输入quit或q或exit退 出。
1、plot命令
gnuplot> plot sin(x) with line linetype 3 linewidth 2 或
gnuplot> plot sin(x) w l lt 3 lw 2 %用线画,线的类型(包括颜色与虚线的类型)是3,线的宽度是2, 对函数sin(x)作图
在Ubuntu 8.10上安装MPICH2并行计算环境
-Zengming Zhang, ZCNI, ZJU
-2010-1-31
(nicegiving@gmail.com)
目录:
———————
1. 什么是MPICH2
2. 安装前的系统准备
3. 安装步骤
4. 设置环境变量
5. 添加mpd配置文件
6. 开始单机测试
7. 安装后配置(多机测试)
(1) 修改/etc/hosts
(2) 创建mpd.hosts
(3) 配置SSH
(4) 配置samba共享
(5) 配置测试机器的环境变量
(6) 开始测试
8. 并行程序运行测试
9. 成功运行的关键点
10. Troubleshooting
———————
const long maxn=1000001;
bool prime[maxn];
//筛选法求素数
//0代表素数,1代表非素数
void primeinit(){
long long i=2,t;
for(i=4;i<maxn;i=i+2)
prime[i]=false;
for(i=3;i<maxn;i=i+2)
{
if(prime[i])
{
t=i*i;
while(t<maxn)
{
prime[t]=false;
t=t+i;//<<2;//偶数倍不用检测i*i为奇数,故i*i+2i必为奇数
}
第 1 部分:简介 PLAYSTATION 3上的Linux
【转自IBM】Sony? PLAYSTATION? 3(PS3)对于程序员来说是尝试使用新 Cell Broadband Engine?(Cell BE)处理器进行开发最简单也是最经济的方法。本文将探索这个领域中的内容,介绍如何在 PS3 上安装 Linux?,如何开始在 PS3 上针对 Cell BE 处理器进行开发。
转载请注明作者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/7097176720102274230831/
1.运行mpirun出现如下错误:
duanple@node1:~/project/test$ mpirun -hostfile hosts -np 2 ./a.out
bash: orted: command not found
————————————————————————–
A daemon (pid 27974) died unexpectedly with status 127 while attempting
to launch so we are aborting.
更新日志
2007年9月8日 本文发布
前言
并行计算一直算是比较专业的领域,当然在Linux下依据现有的开源软件搭建一个并行计算的集群还是相对容易的,通常在Linux下使用 PVM/MPI的方式来实现并行计算集群的,网络上有许多关于PVM和MPICH搭建计算集群的方法,但似乎还没有针对OpenMPI的搭建方式,至少中 文的介绍比较少,所以这里我采用最新的OpenMPI来搭建一个基于LFS平台的集群系统。
http://forums.nvidia.com/index.php?showtopic=98213
I am running Ubuntu 8.04 with the CUDA 2.0 toolkit and driver version 177.73 with openMPI. With this configuration, everything works fine and I am able to compile and execute mpi code by simply replace g++/gcc with mpic++ in common.mk.
My issue is that when I try to upgrade my driver to version 180.22 (to get support for my new 295 cards) I get immediate segmentation fault with even the most trivial programs (empty int main). This problem happens only when I am compiling with the CUDA template. Other programs which are compiled with only the mpic++ command line run fine and when I go back to driver v177.73, everything works again. This issue occurs with nearly identical software config on 5 different workstation with different mobo/CPU, chipset, and graphics cards.
http://www.lam-mpi.org/faq/category11.php3
Table of contents:
[ Return to FAQ ]
1. 说明(可略过)
由于条件限制,我们作的并行只是应用层的并行(包括现在量化网上关于并行的文章,说的也都是应用层的并行);如果有条件的话,可以考虑组建Beowulf,COW,MOSIX,或其他商业的群集系统. 我们说要在应用层实现并行,主要就是通过一些网络协议(如TCP/IP)实现并行群集系统中各个节点间消息的传递,而MPI为此提供了传递接口.
provide the output with -d (debug) parameter as well? With
this parameter you can see the command to start the remote MPDs. You could try
the mpd startup and look if the port is written to stdout.
(1)
no_port 错误
zzm@zzm-desktop:/home/zzm$ mpdboot -n 2 -f /home/zzm/
mpd.hosts
mpdboot_zzm-desktop (handle_
mpd_output 420):
from
mpd
on zzm-desktop,
invalid
port
info:
no_port
导致此错误的原因有很多个,下面是我发现的几个:
linux用户管理:http://hi.baidu.com/hengcheng/blog/item/9b1ee7d3008ddddba8ec9a0a.html
快速设置:http://blog.sina.com.cn/s/blog_4a8aac9701000at0.html
ps3集群:http://cluster.qubits.ch/
Client statistics by OS:http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats
用八台PS3组成工作站:http://www.equn.com/forum/thread-15145-1-1.html
把Cell超级计算机搬回家:http://www.infoq.com/cn/news/2008/12/Supercomputer-at-Home
PS3Cluster Guide:http://www.ps3cluster.umassd.edu/
linux编程blog:http://oss.lzu.edu.cn/modules/lifetype/index.php
zz from: http://oss.lzu.edu.cn/modules/lifetype/index.php?op=ViewArticle&articleId=427&blogId=6
在PS3+YDL上安装集群
falcon <zhangjinw@gmail.com>
2007-6-5
说明:刚接触集群,这里仅仅是一个操作笔记。里头可能有很多错误,欢迎指正。另外,转载请注名出处,并保留作者信息。
近来,总是在闲暇的时间里,翻了些历史的书籍,不知不觉就翻了那么几本。我想我是一个颇喜欢读史的人,虽然很少有时间可以静下心来慢慢阅读。如果放在古代,那时候的学生还是有很多是时间去读书的,所以以前的文化人大概就叫做读书人了。
http://www.pcinlife.com/article/graphics/2008-06-04/1212575164d532.html
猫猫观点:cuda即显卡加速程序端口,他 的优点就是用c语言作为基础,这点很符合中国的现状,中国多数电脑编程高手都懂得c语言的意思,这也是cuda这个接口伟大的地方,但是由于目前显卡 gpgpu的先天的不足,目前还没有功能模块化线程增强指令,所以,提高利用gpgpu的利用率变成了各个编程高手绞尽脑汁的问题,此外windows目 前有很多程序并不能利用到gpgpu的处理能力而实现加速,因此猫猫的另一个观点就是如何无缝连接windows程序所能调用的资源,让整个 windows的系统环境都能得益于gpgpu的加速能力而获得整体的效率提升,这时候gpgpu就已经普及了!希望这个补丁能尽早出来,让 windows环境用户受益!
zzfrom:http://bbayou.blogbus.com/logs/38290786.html
为什么要监控系统的平均负载?
有时我们会感觉到系统响应很慢,但是又找不到原因,这时要查平均负载,是否有大量的进程在排队等待
1,平均负载是什么?
特定时间间隔内运行队列中的平均进程数,好象还不够明白:就是进程队列的长度,有多少个进程在排队等待运行
2,什么是"进程队列"?
一个进程满足以下条件就会位于进程队列中
1,它没有在等待I/O操作的结果
2,它没有主动进入等待状态(即没有调用wait)
3,它没有被停止
3,如何查看平均负载?
最简单的命令是uptime
例子:
[lhd@localhost ~]$ uptime
00:44:22 up 1:17, 3 users, load average: 8.13, 5.90, 4,94
4,显示的内容是什么意思?
load average: 8.13,5.90,4,94
显示的是过去的1,5,15分钟内进程队列中的平均进程数量
5,如何衡量当前系统是否负载过高?
如果每个cpu(可以按CPU核心的数量计算)上当前活动进程数不大于3,则系统性能良好,
不大于4,表示可以接受
如大于5,则系统性能问题严重
上面例中的8.13,如果有2个cpu核心,则8.13/2=4.065, 此系统性能可以接受
建议设置严格的报警值为: CPU核心的数量
比如:CPU核心数量为2,则设置报警值为2
(这样设置是合理的,因为毕竟不是每个应用都支持多CPU及多核心)
6,查看平均负载的命令
有5个可用:
tload 能够绘制出负载变化的图形
uptime 同时显示开机以来的时间
w 同时显示出已登录的用户
top 这个对资源占用太高,不建议使用
cat /proc/loadavg 通过/proc系统信息得到平均负载
注意:如果你要持续的观察平均负载,建议用 watch uptime 或 watch cat /proc/loadavg
备注:关于watch:每隔一定时间执行指定的程序,并全屏显示结果。时间默认是2秒
用户指南:user guide
数组描述符:Array Descriptor for In-core Dense Matrices
数据分配实例:Example
性能模型:Parallel Efficiency
估计执行时间:Estimate Execution Time