- 博客(17)
- 收藏
- 关注
原创 scala
1.scala按名称传递参数(type: => val)和按值传递参数(type:val),按名称传递参数,只有在实际使用的时候才会被计算,可以减少不必要的计算和异常2.
2015-06-09 19:41:04 317
原创 关于linux中的动态连接
今天使用icc编译openmp的程序的时候 出现找不到一个libiomp5.so这个动态连接库的问题,原因是这个库并没有放在LD_LIBRARY_PATH环境变量中。将这个环境变量修改后就好了.但是我们不要随便的改这个环境变量。重要的是 我把程序编译成mic端的代码,结果在mic端仍然是找不到相关的动态链接库,按照上述做法修改环境变量扔不可行 在这个博文中http://www.cnb
2015-05-29 20:28:27 458
原创 c inline函数
在实现一个算的的时候 需要一个任务队列,这个任务队列的相关操作,我定义在一个task_queue的头文件中,定义成inline不行,像这样的情况要定义成 extern inline
2015-05-26 16:25:27 439
原创 bug学到
1.gdb core 用指令启动 : ulimit -c unlimited ulimit为shell内建指令,可用来控制shell执行程序的资源。 2.nm命令 列出目标文件的符号清单3.gdb命令 info funnctions pthread 列出名称中有pthread的函数符号4.每一个外部定义的符号在全局偏移表 (Global Offset Table GOT)中有相
2015-05-22 18:41:34 365
转载 pthread_create线程创建的过程剖析
概述在Linux环境下,pthread库提供的pthread_create()API函数,用于创建一个线程。线程创建失败时,它可能会返回ENOMEM或EAGAIN。这篇文章主要讨论线程创建过程中碰到的一些问题和解决方法。创建线程首先,本文用的实例代码example.c:/* example.c*/#include #include #include
2015-05-22 18:37:57 1144
原创 erlang 实现并行奇偶排序
-module (jiousort).-export ([start/2,handle/4]).% 测试数据:jiousort:start([15,11,9,16,3,14,8,7,4,6,12,10,5,2,13,1],4).% 将数据分给各个进程,并创建nodecreater([],Pids,_M,_Id,_Master) -> Pids;nodecreater([Hlist|T
2015-05-19 19:08:47 697 2
原创 erlang 实现psrs 并行排序算法
-module (psrs).-export ([start/2,handle/1]).% 测试数据:psrs:start([15,46,48,93,39,6,72,91,14,36,69,40,89,61,97,12,21,54,53,97,84,58,32,27,33,72,20],3).% 将数据分给各个进程,并创建nodecreater([],Pids) -> Pids;no
2015-05-17 22:31:18 1156
原创 一个奇怪的bug
这是在按照filter之后的选择向量 构造join的数据过程,发现同样是malloc,但是按图所示,relR1,relR的地址就不一样,最后发现,因为选择向量太小了,如果分配的多了就好了。可是就算地址不一样,但是数据是一样的啊,可是这依然会导致一些奇怪的错误 那就是到后面,会出现很多非法地址 如0xdf23,这种更短的。所以就会出现段错误。
2015-05-13 20:48:30 343
原创 Supersonic 初学
supersonic是一个面向列的数据库查询引擎库,使用很多 底层的 缓存感知的算法来达到加速的效果。提供很多操作符 比如 computer sort hashjoin 等当我们执行一个操作符的时候,首先创建该操作符,我们需要:● a child operation (or children), that supply data● a projector (a descript
2015-05-10 09:42:22 480
原创 erlang 实现并行快速排序
erlang在保证尾递归的情况下,使用一个辅助函数 handl 对parallel_qsort进行包装,则parallel_qsort只管 分发任务即可,计算好了 再进行树形通信合并,之前一直在纠结于是不是要使用进程字典,来保存有哪些进程,进程字典,在erlang program一书中,不建议采用,因为其提供了共享数据的可能,破坏了erlang的设计原则,erlang是面向消息的语言,进行间通
2015-05-09 19:16:37 830
转载 erlang 学习
Erlang属于面向消息的语言,面向消息的语言没有共享对象,进程间交互通过收发消息完成Erlang中一个已经赋值的变量就是一个指针,指向存储值的存储区单次赋值实际上就是存储区的值不会被修改Erlang不共享内存,也就没有了锁的问题函数子句的顺序匹配的顺序是其在文件中的顺序列表解析的数据生成器部分通过模式匹配也可以是达到数据过滤的目的[X||{a,X}lists模块的reverse/1经过高度优化,
2015-05-09 09:30:08 601
原创 vector.....
1.事实表和维表维表是用户分析决策的角度,事实表是分析主体的量化体现。维表是描述问题的某一单一角度,事实表的多个维度的综合。2.DDTA我们已知:事实表一般比维表大,在事实表的外键上做Join操作,由于这个已知的事实,提出DDTA的Join算法对事实表 按照 维表的主键 进行分组,涉及数据结构:bitvec:位置指示向量,维表过滤向量;col输入向量,事实表
2015-04-27 10:19:39 393
原创 openmp实现Nopartition_hashjoin与Radix_Partition_hashjoin
文章分为两部分:1. OpenMP的使用心得;2. 两个算法;个人理解,OpenMP就是面向对已有的串行逻辑的代码进行并行优化,完成代码应首先从串行可行性出发,然后进行并行优化;由于个人是在Pthread代码的基础上进行OpenMP的改写,首先直接照搬Pthread的逻辑,发现这样的效果并不是很好。应该灵活使用 for /Master/section 等它已经提供的编译指导语句
2015-04-22 20:34:16 822
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人