存档

‘计算机’ 分类的存档

MapReduce笔记

2009年12月16日 madongfly 没有评论

1.reduce和map类似,每个task内部可以共享静态类属性,每个task可能会多次调用reduce()函数,但每个key只对应某节点上的某个task的reduce()函数的一次执行

2.多个tasks之间不能共享静态类属性,即使在同一台机器上,因为是以进程方式运行

3.一个key不可能被两个tasks拆分执行,不管是否在相同的节点上。

4. Hadoop Map/Reduce框架为每一个InputSplit产生一个map任务,而每个InputSplit是由该作业的InputFormat产生的。

5. Map的数目通常是由输入数据的大小决定的,一般就是所有输入文件的总块(block)数。如果你输入10TB的数据,每个块(block)的大小是 128MB,你将需要大约82,000个map来完成任务,除非使用 setNumMapTasks(int)(注意:这里仅仅是对框架进行了一个提示(hint),实际决定因素见4)将这个数值设置得更高。
阅读全文…

分类: 并行化 标签:

Anytime algorithm 任意时间算法

2009年11月26日 madongfly 没有评论

今天看论文的时候看到这样一个名词:anytime algorithm,在wiki上查了一下,做一个简单的介绍。

大多数的算法在输入确定时,需要一个确定的时间进行一系列确定数量的计算操作,然后才返回一个确定的答案。但是有的时候,用户希望能够提前结束算法,例如重新分配计算资源等。这种情况下大多数算法不能提前结束,否则得不到什么有用的信息。

而anytime algorithm, 有时候也叫做interruptible algorithm, 从其名字上就可以知道,是可以随时打断的,打断之后算法返回一个最终解的近似解,该近似解的好坏依赖于已经完成的计算量。anytime algorithm 通常还要能保存最后一次得到的解,以便在得到更多的计算时间时,可以在当前解的基础上继续计算更精确地解。
阅读全文…

分类: 算法 标签: ,

CentOS下安装网卡驱动

2009年11月26日 madongfly 没有评论

昨晚给实验室新配的cloud节点装完CentOS系统后发现都没有网卡驱动,今晚在网上搜了一些资料才算搞定,整理了一下整个安装过程。

  • 通过命令 dmesg | grep eth 确定了没有网卡驱动。
  • 在主板说明书上查到网卡的型号是realtek RTL8111C。如果没有说明书的话,可以通过命令kudzu –probe –class=network 查看。
  • realtek的官网下载驱动程序。在装网卡驱动之前,得先确保已经装有kernel-xen-devel,kernel-devel,以及GCC,可以使用命令 rpm -q ***来查询是否已经安装,例如:rpm -q gcc。如果没有安装的话,通过CentOS的安装盘进行安装。
  • 挂载安装盘
    # mount -t iso9660 -o ro /dev/cdrom /mnt
  • 阅读全文…

    分类: 操作系统 标签:

    placement new操作

    2009年11月24日 madongfly 没有评论

    今天看到一段这样的代码:

    1
    2
    3
    4
    
    template
    inline void _construct(T1 *p, const T2& value){
        new(p) T1(value);
    }

    然后发现自己好圡,竟然是头一次看到new函数这样的用法,网上查了一下才知道原来这叫 placement new,简单来说就是在p所指的内存处构造对象,不再申请内存。

    在网上找到一篇对placement new 说的比较清楚的文章,没找到原作者是谁,所以就不给链接了,直接转载如下:
    阅读全文…

    分类: 程序设计 标签: ,

    原来二分还可以这样写

    2009年11月16日 madongfly 没有评论

    今天在《Programming Pearls》上看到这样的问题,有一个非降序数组d[],包含1000个数,可能有重复的数,求数K在数组中最靠前的下标。如果找不到的话,结果为-1。

    这种类型的二分之前已经写过不下数十次了,于是我信手敲下如下代码:

    [code=cpp]
    l = 0; r = 999;
    ans = -1;
    while(l <= r)
    {
    	mid = (l+r)/2;
    	if(d[mid] >= k)
    	{
    		ans = mid;
    		r = mid-1;
    	}
    	else
    		l = mid+1;
    }
    [/code]

    上面这段代码是我写了很多次的二分之后总结出来的,因为二分的很多其他写法在不同的条件下稍不注意就会出现错误。这里说的不同的条件包括:求满足条件的最小的值; 求满足条件最大的值等等。

    而上面的代码可以通用我到目前为止遇到的所有情况(仅仅是改变一下ans = mid; 的位置即可),所以一直这么写二分。

    但是看了书上给的代码,觉得不但也能适合所有情况,而且很好验证其正确性:
    阅读全文…

    分类: 程序设计 标签: ,

    重装Windows后找回Linux引导

    2009年11月1日 madongfly 没有评论

    1.下载grub_for_dos,解压以后把grldr这个文件拷到c盘根目录下面,打开boot.ini,在最后加一行:c:grldr=”grub”(引号里的内容可以随便写),保存后重启。

    2.重启后会出现选择菜单,选择grub,它会自动寻找menu.lst,一般这样就可以进入grub菜单,启动 linux。若Linux启动成功,跳到第4步。

    3.(这一步我没经历过,所以原文照写如下) 若上一步没有成功启动Linux,则会进入命令行,输入:root (hd0,*)(你的 linux所在的区),回车,输入:configfile /boot/grub/grub.conf,如果你的/boot是单独分区的,输入:configflie /grub/grub.conf,回车即可进入grub启动选择菜单。

    阅读全文…

    分类: 操作系统 标签:

    Linux一句话问答

    2009年11月1日 madongfly 没有评论

    Linux一句话精彩问答
    作者:陈绪/魏琼
    来自:linux宝库 (http://www.linuxmine.com)
    联系:linuxmine@gmail.com

    编者按:鉴于目前中国Linux的发展现状,90%以上的问题都可以用一句话来回答,这便是
    本文的初衷。欢迎大家添加自己的“一句话”,收录后注明原始提供者。更详细的文档,
    请浏览http://linux.chinaunix.net 或http://www.linuxmine.com

    修订说明:本FAQ是在原“linux一句话精彩问答”4/28/2006版的基础上针对本版实际情
    况作了小部分修改,使之更适合于本站网友。各位如果发现有误之处,请来信告知,以便
    及时更正;另外如果有值得添加新内容,也欢迎来信告知。谢谢!(By JJCH)
    阅读全文…

    分类: 操作系统 标签: