Tuesday, August 24, 2010

Research Progress

0 comments
  1. fixed Eclipse debugger variable view not updating value problem, by compile the source code without any optimization (i.e. no -o2 set in as the gcc options.)
  2. tracking in the wavelet transform.

Wednesday, August 18, 2010

Research Progress

0 comments
  1. Reprofile the jasper on the cluster, the result is different to the one on the VirtualBox
  2. Read papers, wavelet transform, entropy coding (3 passes) sections
  3. Inspecting the Java applet for various demo in the jpeg, may use the jj2000 to understand the coding algorithm.

Friday, August 13, 2010

Research Progress

0 comments
  1. Found 2 paper about the jasper parallelization in OpenMP [111] [112]
  2. Prepare the progress
  3. Re-run the 4 threads on ottawa.cal.ee.queensu.ca, bw2.pnm generates error (segmetation fault) cannot tell why.

Thursday, August 12, 2010

Research Progress

0 comments
  1. Entropy coding
  2. Three passes, significance pass.
  3. Debug the code in the sig_pass_step

Tuesday, August 10, 2010

Color in bash

0 comments
  • echo -e '\E[COLOR1;COLOR2mSome text goes here.'

ColorForegroundBackground
black3040
red3141
green3242
yellow3343
blue3444
magenta3545
cyan3646
white3747


Example:

  • bash$ echo -e '\E[34;47mThis prints in blue.'; tput sgr0
  • bash$ echo -e '\E[33;44m'"yellow text on blue background"; tput sgr0
       
The tput sgr0 restores the terminal settings to normal. Omitting this lets all subsequent output from that particular terminal remain blue.

The simplest, and perhaps most useful ANSI escape sequence is bold text, \033[1m ... \033[0m. The \033 represents an escape, the "[1" turns on the bold attribute, while the "[0" switches it off. The "m" terminates each term of the escape sequence.

  • bash$ echo -e "\033[1mThis is bold text.\033[0m"
       



Thursday, August 5, 2010

OpenMP Scheduling

0 comments
  • SCHEDULE: Describes how iterations of the loop are divided among the threads in the team. The default schedule is implementation dependent.

    STATIC
    Loop iterations are divided into pieces of size chunk and then statically assigned to threads. If chunk is not specified, the iterations are evenly (if possible) divided contiguously among the threads.

    DYNAMIC
    Loop iterations are divided into pieces of size chunk, and dynamically scheduled among the threads; when a thread finishes one chunk, it is dynamically assigned another. The default chunk size is 1.

    GUIDED
    For a chunk size of 1, the size of each chunk is proportional to the number of unassigned iterations divided by the number of threads, decreasing to 1. For a chunk size with value k (greater than 1), the size of each chunk is determined in the same way with the restriction that the chunks do not contain fewer than k iterations (except for the last chunk to be assigned, which may have fewer than k iterations). The default chunk size is 1.

    RUNTIME
    The scheduling decision is deferred until runtime by the environment variable OMP_SCHEDULE. It is illegal to specify a chunk size for this clause.

    AUTO
    The scheduling decision is delegated to the compiler and/or runtime system.

  • NO WAIT / nowait: If specified, then threads do not synchronize at the end of the parallel loop.

  • ORDERED: Specifies that the iterations of the loop must be executed as they would be in a serial program.

  • COLLAPSE: Specifies how many loops in a nested loop should be collapsed into one large iteration space and divided according to the schedule clause. The sequential execution of the iterations in all associated loops determines the order of the iterations in the collapsed iteration space.
https://computing.llnl.gov/tutorials/openMP/