Parallelizing an Image Compression Toolbox MSE Project Final Presentation Hadassa Baker.

Slides:



Advertisements
Similar presentations
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
Advertisements

Topics covered: CPU Architecture CSE 243: Introduction to Computer Architecture and Hardware/Software Interface.
Optimizing single thread performance Dependence Loop transformations.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
An efficient data race detector for DIOTA Michiel Ronsse, Bastiaan Stougie, Jonas Maebe, Frank Cornelis, Koen De Bosschere Department of Electronics and.
Multithreaded FPGA Acceleration of DNA Sequence Mapping Edward Fernandez, Walid Najjar, Stefano Lonardi, Jason Villarreal UC Riverside, Department of Computer.
1 Outline  Introduction to JEPG2000  Why another image compression technique  Features  Discrete Wavelet Transform  Wavelet transform  Wavelet implementation.
Application of Generalized Representations for Image Compression Application of Generalized Representations for Image Compression using Vector Quantization.
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
CS533 Concepts of Operating Systems Class 2 Thread vs Event-Based Programming.
CS510 Concurrent Systems Class 5 Threads Cannot Be Implemented As a Library.
From Essentials of Computer Architecture by Douglas E. Comer. ISBN © 2005 Pearson Education, Inc. All rights reserved. 7.2 A Central Processor.
Submitters:Vitaly Panor Tal Joffe Instructors:Zvika Guz Koby Gottlieb Software Laboratory Electrical Engineering Faculty Technion, Israel.
CIS 310: Visual Programming, Spring 2007 Western State College Welcome to 310 Visual Programming Spring, 2008.
Operational Information Operational Case Study Operational Information The purpose of Operational Case Studies is to increase knowledge and understanding.
Kathy Grimes. Signals Electrical Mechanical Acoustic Most real-world signals are Analog – they vary continuously over time Many Limitations with Analog.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
What is JPEG 2000 Robert Han ECE533 Final Project Presentation University of Wisconsin - Madison.
Introduction to Symmetric Multiprocessors Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı
Advances in Language Design
DATA STRUCTURES OPTIMISATION FOR MANY-CORE SYSTEMS Matthew Freeman | Supervisor: Maciej Golebiewski CSIRO Vacation Scholar Program
Introduction to JPEG Alireza Shafaei ( ) Fall 2005.
9/13/20151 Threads ICS 240: Operating Systems –William Albritton Information and Computer Sciences Department at Leeward Community College –Original slides.
Emlyn Corrin, DPNC, University of Geneva EUDAQ Status of the EUDET JRA1 DAQ software Emlyn Corrin, University of Geneva 1.
COSC 3127 Programming Languages Dave Goforth FA377.
A New Reference Design Development Environment for JPEG 2000 Applications Bill Finch CAST, Inc. Warren Miller AVNET Design Services DesignCon 2003 January.
1 Image Compression. 2 GIF: Graphics Interchange Format Basic mode Dynamic mode A LZW method.
Binary Image Compression via Monochromatic Pattern Substitution: A Sequential Speed-Up Luigi Cinque and Sergio De Agostino Computer Science Department.
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
Cosc 4740 Chapter 6, Part 3 Process Synchronization.
The HDF Group Multi-threading in HDF5: Paths Forward Current implementation - Future directions May 30-31, 2012HDF5 Workshop at PSI 1.
AADEBUG MUNCHEN Non-intrusive on-the-fly data race detection using execution replay Michiel Ronsse - Koen De Bosschere Ghent University - Belgium.
Mahesh Sukumar Subramanian Srinivasan. Introduction Embedded system products keep arriving in the market. There is a continuous growing demand for more.
CSC 230: C and Software Tools Rudra Dutta Computer Science Department Course Introduction.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Parallel Algorithms Patrick Cozzi University of Pennsylvania CIS Spring 2012.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
Adapting Wavelet Compression to Human Motion Capture Clips Philippe Beaudoin 1 Pierre Poulin 1 Michiel van de Panne 2 1 Université de Montréal, LIGUM 2.
Programming with Visual Studio.NET A short review of the process.
Threads Cannot be Implemented as a Library Hans-J. Boehm.
10 Aug 2010 ECE/BENG-493 SENIOR ADVANCED DESIGN PROJECT Meeting #2.
Silberschatz, Galvin and Gagne  Operating System Concepts Operating Systems 1. Overview 2. Process Management 3. Storage Management 4. I/O Systems.
Overview of Operating Systems Introduction to Operating Systems: Module 0.
Radix Sort and Hash-Join for Vector Computers Ripal Nathuji 6.893: Advanced VLSI Computer Architecture 10/12/00.
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Virtual Application Profiler (VAPP) Problem – Increasing hardware complexity – Programmers need to understand interactions between architecture and their.
By: Rob von Behren, Jeremy Condit and Eric Brewer 2003 Presenter: Farnoosh MoshirFatemi Jan
Parallel processing
MSE Presentation 3 By Lakshmikanth Ganti Under the Guidance of Dr. Virgil Wallentine – Major Professor Dr. Paul Smith – Committee Member Dr. Mitch Neilsen.
Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi,
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
2.2 Threads  Process: address space + code execution  There is no law that states that a process cannot have more than one “line” of execution.  Threads:
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
DAC50, Designer Track, 156-VB543 Parallel Design Methodology for Video Codec LSI with High-level Synthesis and FPGA-based Platform Kazuya YOKOHARI, Koyo.
Lecture 5. Example for periority The average waiting time : = 41/5= 8.2.
Introduction to threads
Yingfang Zhang Department of Computer Science UCCS
Parallelizing an Image Compression Toolbox
Threads Cannot Be Implemented As a Library
Comparative Analysis of Parallel OPIR Compression on Space Processors
Module 1: Getting Started
VLIW DSP vs. SuperScalar Implementation of a Baseline H.263 Encoder
PPMP20008 Lessons Learnt Presentation
UNIT IV.
Shared Memory Programming
Multithreaded Programming
Operating Systems Lecture 1.
Major Topics in Operating Systems
Compiler Construction
Implementation of a De-blocking Filter and Optimization in PLX
Presentation transcript:

Parallelizing an Image Compression Toolbox MSE Project Final Presentation Hadassa Baker

Topics of Discussion Introduction Action Items Design Review Test Setting Test Results Project Evaluation Conclusion

Introduction Objective To rewrite a sequential wavelet image compression program into a parallel program in an effort to improve execution speed The Image compression toolbox Console program Compresses a RAW or a grayscale Tiff image file and writes out a compressed file Decompresses a compressed file and writes out a RAW or grayscale Tiff image file

Introduction Both the sequential program and the parallel program are written in C++ The Zthread library is used for multithreading the parallel program

Action Items Add LTL properties to the formal specification Vertical transformation can start on a section before horizontal transformation in all sections is complete [] ( q U r) #define q (V[1] == 0) #define r (H[1] == WIDTH)

Action Item Add a discussion in the Test Plan document why the planned test is sufficient.

Design Review The following four processes take place in the compression process Wavelet Transformation Optimal bit allocation Quantization Entropy encoding File I/O and the entropy encoding processes are not parallelized

Test Setting Test Environment Linux shared memory multiprocessor machine A quad PII-450 Linux machine located in the CIS department was used Test Image files Lena.raw (Width = 512, Height = 512) 1920x1080.raw (Width = 1920, Height =1080)

Test Setting Execution time was measured for compressing the test images The same test was performed on the parallel and sequential programs

Test Results Unexpected Results The execution time for the sequential program was shorter than the execution time for the parallel program As the number of threads/workers was increased in the parallel program the execution time became longer

Test Results for Lena.raw

Test Results for 1920x1080.raw

Test Results Test was repeated without the wavelet transformation process, which yielded the expected results. In the wavelet transformation process data is shared between threads, which operation must be garded with mutex. That may have resulted in unexpected delays.

Test Results Lena.raw without wavelet transformation

Test Results 1920x1080.raw without wavelet transform

Project Evaluation Lesson Learnt Formal verification of the architecture design using a tool like spin is beneficial to help prevent implementation errors that are difficult to debug If the goal is improving execution speed, avoid much data sharing between threads

Conclusion The objective of improving execution speed using parallel programming has been achieved The Zthread library makes multithreaded program easier to write in C++ A great learning experience for me.