Tuesday Nov 20, 2007
Saturday Sep 22, 2007
By yuanlin on Sep 22, 2007
Wednesday Jun 07, 2006
Common Mistakes in Using OpenMP 3: Fifteen Cases from a IWOMP 2006 paper by Michael Süß and Claudia Leopold
By yuanlin on Jun 07, 2006
The coming International Workshop on OpenMP (IWOMP 2006) has a paper titled "Common Mistakes in OpenMP and How to Avoid Them" written by Michael Süß and Claudia Leopold (University of Kassel, Germany).
The result is based on a survey of two undergraduate courses. The authors of the paper kindly allow me to list the 15 common mistakes presented in their paper here,
- (Correctness) Access to shared variables not protected
- (Correctness) Use of locks without flush
- (Correctness) Read of shared variable without flush
- (Correctness) Forget to mark private variables as such
- (Correctness) Use of ordered clause without ordered construct
- (Correctness) Declare loop variable in #pragma omp parallel for as shared
- (Correctness) Forget to put down for in #pragma omp parallel for
- (Correctness) Try to change num. of thr. in parallel reg. after start of reg.
- (Correctness) omp_unset_lock() called from non-owner thread
- (Correctness) Attempt to change loop variable while in #pragma omp for
- (Performance) Use of critical when atomic would be sufficient
- (Performance) Put too much work inside critical region
- (Performance) Use of orphaned construct outside parallel region
- (Performance) Use of unnecessary flush
- (Performance) Use of unnecessary critical
For detail, please read the full paper.
Sunday Jun 04, 2006
By yuanlin on Jun 04, 2006
The June 2006 issue (Vol 4, No 5) of ACM Queue features an aritcle by Michi Henning of ZeroC on the rise and fall of CORBA.
Technical issues and procedural issues contribute to the fall of CORBA. And the procedural problems are the root cause of the procedural problems. Many of the issues the article points out are alarming familiar!
The following is a list of lessons learnt in how to have a better standards process,
- Standards consortia need iron-clad rules to ensure that they standardize existing best practice.
- No standard should be approved without a reference implementation.
- No standard should be approved without having been used to implement a few projects of realistic complexity.
- Open source innovation usually is subject to a Darwinian selection proecess.
- To create quality software, the ability to say "no" is usually far more important than the ability to say "yes".
Read the whole article.
Sunday May 28, 2006
By yuanlin on May 28, 2006
New.com recently has an article on companies making comercial static code analysis tools for checking security flaws.
Companies and products to watch:
- Microsoft (PREfast - a presentation and Static Driver Verifier)
- @Stake (acquired by Symantec)
- Coverity (from Stanford)
- Ounce Labs
Most of them use context sensitive, interprocedural, cross module, and mixed language analysis. A major difference between the analysis used in static error detection and the one used in compiler optimization is that the former can be incomplete and unsound.
Here is a link to a site that lists a collection of static analysis tools for C code.
- New Post @ touchdreams.net/blog: Thread Cleanup Handlers, exit(), _exit(), atexit(), and pthread_exit()
- Moving to touchdreams.net/blog
- More on Concurrency vs Parallelism
- Extending the OpenMP profiling API for OpenMP 3.0
- Sun Studio Express 11/08
- New LEGO in Store: Sun Studio Express 07/08 with OpenMP 3.0 Support
- Gulf of Execution
- Think in Parallel or Not
- Non-concurrency Analysis Used in PTP
- Maximum Automation for Mundane Tasks