No, I am not talking about thinking of the good old days with a cup of drink. Today we are talking about our recent release of a new feature in our modified version of deep learning toolbox, Caffe. https://github.com/yjxiong/caffe In this release, we have implemented the functionality usually referred to as “memory multiloading”. A Wiki page is set up to describe how to use feature https://github.com/y  阅读全文...

One interesting answer I saw on Stack Overflow. Someone asked how he can receive the msg send by `MPI_Bcast`. The answer is This is a common source of confusion for people new to MPI. You don’t use MPI_Recv() to receive data sent by a broadcast; you use MPI_Bcast(). For MPI collective communications, everyone has to particpate; everyone has to call the Bcast, or the Allreduce, or what have you. (That  阅读全文...

Why MEX 由于matlab的迭代器不太给力,Mathworks建议大家尽量将程序向量化。但是我们有时候需要使用for 循环,这时可以自己编写c代码再编译成mex文件。这样就可以在matlab中调用。同时以后的c模块也可以通过编写mex文件来与matlab交互。 Hello world! 下面是一段简单的c代码,可以把它保存为helloworld.c, 然后在matlab执行 mex helloworld.c 编译。然后运行 helloworld() //You can include any C libraries that you normally use #include "math.  阅读全文...

在VS中,要使用64位compiler编译程序,需要设置一下。下面是在StackOverflow上找到的一般步骤。 注意,64位编译器在Express版本的VS中是没有的。但是可以安装windows sdk来间接获取。 设置步骤如下: Project Properties-> Configuration Manager 在列表中找到project的名字,在platform 下拉菜单中,只能看到win32。 点击下拉箭头,选择<new> 在弹出的对话中,上面有个New Platform的下拉菜单,选择x64,一路OK保存,设置完成。 如果projec  阅读全文...

最近在学习使用超算,主要用来做SVD相关的计算,需要用到SLEPC库,这个库依赖于PETSC库。在深圳的曙光6000上没有装这两个库,所以自己摸索着装了一下,下面是具体步骤。实验环境为曙光6000超算系统,OpenMPI-1.4,intel MKL, intel 64 架构 1 源代码(source) PETSC SLEPC 下载最新版即可 2 PETSC安装 通常情况下PETSC安装分为两步,即configure和make。但是对于使用job scheduler的cluster来说,configure的步骤要复杂一些。下面一一介绍 A. Configur  阅读全文...

在matlab的内置函数中已经给出了sort和min,max的实现,都是比较高效的。但是我们常常遇到这种情况,就是要在一个矩阵或者是向量中取出最大的前k个元素,k一般相比元素的总数量要小很多。 这个时候,一般最朴素的做法是先用sort排序,然后取前n个,这样得到的时间复杂度为O(n*log(n))。假设向量有n个元素。 或者当k远远小于n时,可以考虑重复调用max或min,这时的复杂度为O(k*n)。 Bruno Luong 给出了一个用部分快速排序实现的算法,复杂度为  阅读全文...