从事互联网开发工作,写博客,记录问题与学习支持,并分析
Reduction操作:规约操作就是由多个数生成一个数,如求最大值、最小值、向量点积、求和等操作,都属于这一类操作。 有大量数据的情况下,使用GPU进行任务并行与数据并行,可以收到可好的效果。 group同步:OpenCL只提供了工作组内的各线程之间的同步机制,并没有提供所有线程的同步。
1.安装AMD GPU显卡驱动(安装后重启) 13-12_win7_win8_64_dd_ccc_whql.exe 2.安装AMD OpenCL SDK(安装后重启) AMD-APP-SDK-v2.9-Windows-641.exe 3.配置VS2010 OpenCL环境 (1)添加外部头文件 在项目->properties ->Configuration Proprtties->C/C++->General中设置。
1.什么是操作符重载 可以使用分词将操作符重载理解为:操作符+重载。 C++中的操作符很多,如+,-,*,\等等。 C++中的重载也是C++中面向对象多态的体现。 简单说操作符重载: C++中有:int a=2+3; 那么a=5 操作符重载可以实现对自定...
1.构造函数 C++中的构造函数是用于初始化类的各种变量以及分配资源等。主要的注意事项是: (1)在继承关系中先初始化父类对象后初始化子类对象。 (2)在一个类中按照变量的声明顺序,对类中的变量进行初始化。
之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。
在使用OpenCL编程中,需要对GPU设备的底层理解,这样才能更好的进行代码优化。 比如计算单元CU数量,每个CU的执行单元PE数量,每个CU中的共享内存大小等等。只有了解了这些才能更好的使用共享内存,设计核函数的运行参数等。
http://www.cnblogs.com/xudong-bupt/p/3582780.html 1.OpenCL概念 OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU或其他类型的处理器组成。
^M符号是windows系统下的換行符,在windows下的文本通过bin模式ftp上传到了unxi空间出现的。 在test.txt文件中有如下内容: eeesdgtdfg dfgdfgfdgfd ^M ineesert into pusfdgdfgfd)ff;^M adwwfdfed adfdsdfsfdsf.^M 在命令模式下运行命令 :%s/^M//g 回车注意:里面的^M 必须是同时按 Ctrl+V+M ,表示回车。
OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序。 多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互斥锁,就是只有获得互斥锁的线程可以执行,其他线程阻塞。
GPGPU是众核设备,包含大量的计算单元,实现超高速的并行。 使用CUDA在nvidia显卡上面编程时,可以使用CUDA提供的Event进行程序计时。 当然,每种编程语言基本都提供了获取系统时间的函数,如C/C++/Java 程序计时功能函数 Event可以统计GPU上面某一个任务或者代码段的精确运行时间。
1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 如下就是一个父类中的虚函数: class A { public: virtual ...
写论文经常需要写出参考文献,各种格式实在是麻烦的不行啊,在网上看到一个参考文献自动生成的博客,现在转载下来,以备以后自已能用。 主要是使用Google Scholar。 Step 1: 打开Google Scholar,网址:http://scholar.google.com/。
[转]http://linux.chinaunix.net/techdoc/develop/2007/05/05/956956.shtml 为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.
在C/C++编程时,需要获取目录下面的文件列表信息。 1.数据结构 struct dirent { long d_ino; /* inode number 索引节点号 */ off_t d_off; /* off...
C/C++程序中需要程序显示当前时间,可以使用标准函数strftime。 函数原型:size_t strftime (char* ptr, size_t maxsize, const char* format,const struct tm* timeptr ); 代码示例: 1 #in...
C++ vector中实际删除元素使用的是容器vecrot中std::vector::erase()方法。 C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。
使用与平台有关的C语言函数,可能会使得程序不具有可移植性。比如Socket编程、多线程编程等是与平台有关的。 若想将程序做成平台无关的就需要用到与平台相关的条件编译。 下面转自:http://blog.
一般的U盘挂载方法: mount [-fnrsvw] [-t vfstype] [-o options] device dir 参数:device表示要挂载的设备,dir表示挂载点 -t 指定设备的文件系统类型。
转自:http://blog.csdn.net/htttw/article/details/7220430 Ubuntu设置环境变量 Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户: 一:用于当前终端: 在当前终端中输入:export PATH=$PATH: 不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。
[转]http://www.cnblogs.com/tornadomeet/archive/2012/04/11/2442140.html 使用Linux Socket做了小型的分布式,如Linux C Socket编程原理及简单实例。
在C语言中测试文件的大小,主要使用二个标准函数。 1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明:stream,文件流指针;offest,偏移量;orgin,原(始位置。
利用Socket发送文件、结构体、数字等,是在Socket编程中经常需要用到的。由于Socket只能发送字符串,所以可以使用发送字符串的方式发送文件、结构体、数字等等。 本文:http://www.cnblogs.com/xudong-bupt/p/3496741.html 1.memcpy Copy block of memory。
本文:http://www.cnblogs.com/xudong-bupt/p/3504442.html Linux C 下面读取文件夹要用到结构体struct dirent,在头#include 中,如下: #include struct dirent { long d_i...
部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx 1. 什么是TCP/IP、UDP? 2. Socket在哪里呢? 3. Socket是什么呢? 4. 有很多的框架,为什么还在从Socket开始? 5. Linux C Socket简单示例 1.什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。
字符串处理是每个编程者都必须掌握的知识,主要看看字符串的搜索查找功能。 现在的编程语言如C/C++/Java等都提供了对字符串子串的查找功能,具体如下: (1)C:strchr,strstr。 (2)C++:find,rfind,find_first_of,find_first_not_of等等。
1.定义 哈夫曼编码主要用于数据压缩。 哈夫曼编码是一种可变长编码。该编码将出现频率高的字符,使用短编码;将出现频率低的字符,使用长编码。 变长编码的主要问题是,必须实现非前缀编码,即在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 二分查找对有序表查找的时间复杂度为lg(n)。 一般的二分查找只是查找给定元素在数组中的位置或者是有存在给定的元素。
在多线程、线程池编程中经常会遇到同步的问题。 1.创建线程 函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg); 参数:thread指向线程id的指针;attr指向线程属性的指针;第三个为执行的方法的函数指针;arg指向给方法传递的参数的指针。
在编程中经常需要用到数字与字符串的转换,下面就总结一下。 1.atoi() C/C++标准库函数,用于字符串到整数的转换。 函数原型:int atoi (const char * str); 1 #include 2 #include 3 int main () 4 {...
ANSI C规定文件打开用函数fopen,关闭为fclose。 1、调用方式通常为: FILE *fp; fp=fopen(文件名, 打开方式); 2、参数说明: 文件名: 形如"myfile.
1.作用 读写文件数据块。 2.函数原型 (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * stream ); 其中,ptr:指向保存结果的指针;size:每个数据类型的大小;count:数据的个数;stream:文件指针 函数返回读取数据的个数。
[转自]http://www.cnblogs.com/coderzh/archive/2008/11/24/1340134.html 1 #include 2 #include 3 #include 4 5 #define MAXSIZE 1024 6 #pragma comment(lib, "Wininet.
[转载]http://blog.csdn.net/ccwwff/article/details/6697258 在ubuntu安装wireshark, 在启动程序启动wireshark. 点captrue->interface, 出现: There are no interfaces on which a capture can be done.
VS2010的快捷键,后附VS2008的快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTR...
编写程序肯定要使用计时功能,来判断程序的执行时间。今天Google了一下,自己就梳理总结一下: (1)C/C++程序计时 C/C++中使用的计时函数是clock()。 C语言中的头文件对应是#include,C++中对应的头文件为#include。
前段时间看了个paper是讲述谷歌浏览器使用的压缩方法SDCH,其实原理还是比较简单的。 看了论文后就想总结一下程序中使用的一些共享方法或者技术吧。 1.Google最近发明的HTTP压缩算法SDCH SDCH的全称是Shared Dictionary Compression over HTTP的简写。
现在主要的并行计算设备有两种发展趋势: (1)多核CPU。 双核,四核,八核,。。。,72核,。。。,可以使用OpenMP编译处理方案,就是指导编译器编译为多核并行执行。 (2)多线程设备(GP)GPU。
安装ubuntu 12.04后,无线网卡不可用,采用以下方式解决: 1、在终端中运行如下命令,重新安装b43相关的全部驱动和firmware: sudo apt-get install bcmwl-kernel-source #Broadcom 802.
Horspool 字符串匹配算法对Boyer-Moore算法的简化算法。 Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有sub-linear亚线性时间复杂度。 Horspool 算法: 对于每个搜索窗口,该算法将窗口内的最后一个字符和模式串中的最后一个字符进行比较。
可以说单例模式是所有设计模式中最简单的一种。 单例模式就是说系统中对于某类的只能有一个对象,不可能出来第二个。 单例模式也是23中设计模式中在面试时少数几个会要求写代码的模式之一。主要考察的是多线程下面单例模式的线程安全性问题。
Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。 Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。 搞编程的一般都应该知道自动机FA吧,具体细分为:确定性有限状态自动机(DFA)和非确定性有限状态自动机NFA。
[转自]http://www.cnblogs.com/xfreedom/archive/2011/05/16/2048037.html 要想使用标准C++中string类,必须要包含 #include // 注意是,不是,带.h的是C语言中的头文件 using std::string; using std::wstring; 或 using namespace std; 下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
1.FIFO队列 std::queue就是普通意思上的FIFO队列在STL中的模版。 1.1主要的方法有: (1)T front():访问队列的对头元素,并不删除对头元素 (2)T back():访问队列的末尾元素,并不删除末尾元素 (3)void pop():删除对头元素。
1.文件合并 1.1文件上下合并 cat f1 f2> muti (将文件f1、f2合并成文件muti,f1在上,f2在下) 1.2左右合并 paste f1 f2 > muti (将文件f1、f2合并成文件muti,f1在左,f2在右,默认使用tab键隔开) 2.
好久没有写博客啦,之前看完了《设计模式之禅》也没有总结一下,现在回忆一下设计模式之观察者模式。 1.什么是观察者模式 简单情形:有A、B、C、D等四个独立的对象,其中B、C、D这三个对象想在A对象发生改变的第一时间知道这种改变,以便做出相应的响应或者对策。
java的动态绑定 所谓的动态绑定就是指程执行期间(而不是在编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。java继承体系中的覆盖就是动态绑定的,看一下如下的代码: class Father { public void method(){ System.
今天做了个笔试,这是其中的一道题目:写代码使得分别出现StackOverflowError和OutOfMemoryError。 1.StackOverflowError 堆栈溢出错误一般是递归调用嘛。
以前用jxl.jar包,读写过Excel文件。也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽。 注意,这个只是基本可以实现,基本针对中文电子报表。
一致性哈希算法主要使用在分布式数据存储系统中,按照一定的策略将数据尽可能均匀分布到所有的存储节点上去,使得系统具有良好的负载均衡性能和扩展性。感觉一致性哈希与数据结构中的“循环队列”还是有一点联系的。
做项目的时候需要对拿到的数据进行“清洗”,比如剔除一些不可能存在的身份证号码。查阅了网上的身份证号码验证算法,自己也总结一下。 (一)18身份证号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。