This paper comes from ISCA’10. This paper re-evaluates the performance gap, especially for high throughput computing, between CPU and GPU. Contrast to the previous papers it mentioned claimed 100x performance differences between CPU and GPU, with appropriate optimizations, the performance gap between CPU (Intel Core i7 960) and Nvidia GTX280 narrows to only 2.5x on [...]
Author Archives: xulei
Reading: Eraser: A Dynamic Data Race Detector for Multithreaded Programs
This paper is chosen from an advanced operating system course. As a common programming technology, multithreading programing leads to potential data race that two threads may access same piece of data without synchronization guarantee. Thus the authors of this paper presented a mutex exclusion monitoring mechanism to detect the misbehaviors of shared data. The basic [...]
Use sshfs to mount remote server on Mac
On an environment that you have high speed internet connections, a remote ssh server is a good choice for you to store and process data, especially most of these severals are more reliable and powerful than your Macbook Pro. MacFuse and sshfs are your friends. However, by default, the sshfs mounted diretory can not be [...]
Write file systems on top of ZFS components
Despite of ZPL(ZFS Posix Layer), the left ZFS stack has a bunch of features and functionalities that all other file system developers need and are going to implement more or less, such as DMU, ZIL and ZVOL, which provide object storage, logs, and transaction supports. The successful of zfs-fuse project and the promising native zfs [...]
Reading: SPORC: Group Collaboration using Untrusted Cloud Resources(OSDI’10)
This paper is from Princeton University. This paper presented a distributed group collaboration method based on the assumptions that the cloud server, the remote server actually, is not secure and reliable. In fact, this paper does not focus on cloud service, but only treat it as an untrusted remote server, in terms of privacy and [...]
A portable getppid for specific pid
I posted a gist that can obtain the id of the parent process of any given process(pid), which is expected to be useful to get data flow of program executions. Since on Mac, there is no /proc directory by default, thus we access the process info by invoke sysctl (reference) /** See http://gist.github.com/589115 */ pid_t [...]
wrapperfs — A file system wrapper on top of existing file systems
Today, I created a new git repo for wrapperfs on github. Wrapper-fs works as a thin wrapper on top of the existing file systems to provide an simple entry for developers and researchers to evaluate their ideas. I have done this wrapper thing twice, which motivates me to extract the main skeleton of source codes [...]
Set vim to jump between files located in include and src sub-directories
There is one extra configuration required for a.vim, you should put the following line into ~/.vimrc: let g:alternateSearchPath = ‘sfr:../source,sfr:../src,sfr:../include,sfr:../inc,reg:/include/src/g,reg:/src/include/g’
Use awk to count the occurrences of lines
This is a one-line command to calculate the occurrences of particular lines in one file. I have used this to analyze the access patterns of I/O traces by count the file lookup operations: grep OP trace.txt | awk ‘{++count[$1]} END { for (x in count) print count[x] " " x; }’ | sort -nr It [...]
Home NAS solution
It has been a tradition that I wrote a post for my home NAS solution after each re-installation of wordpress. Since the old macbook was stolen in San Francisco, I bought a Zotac Mag as home server. Besides that, I bought some other equipments to build a home entertainment network: Zotac Mag: Atom 330, 2G [...]