Difference between revisions of "User:Pulkit Mittal/GSOC2014/proposal"
(Created page with "=='''Personal Information'''== '''Name:''' Pulkit Mittal <br /> '''E-Mail:''' bhangarval@gmail.com <br /> '''IRC Nick:''' hoiji ='''Project Title'''= STEP Libraries : Improv...") |
|||
Line 1: | Line 1: | ||
− | == | + | ==Personal Information== |
'''Name:''' Pulkit Mittal <br /> | '''Name:''' Pulkit Mittal <br /> | ||
'''E-Mail:''' bhangarval@gmail.com <br /> | '''E-Mail:''' bhangarval@gmail.com <br /> | ||
'''IRC Nick:''' hoiji | '''IRC Nick:''' hoiji | ||
− | = | + | =Project Title= |
STEP Libraries : Improving Thread Safety and Performance | STEP Libraries : Improving Thread Safety and Performance | ||
+ | |||
+ | =Project Introduction= | ||
+ | ==Motivation== | ||
+ | ''STEP'' is the current standard for exchange of ''CAD data'' between different software packages. A ''STEP-File'' (also called Part21 file) is the most widely used data exchange form of STEP. Part21 files may be very huge (hundreds of Mb). These files are known to be heavily resource consuming (in terms of computing time or memory consumption) when being imported. The computing time taken by the processing of such files can be significantly reduced by using multi-thread programming techniques. | ||
+ | |||
+ | However before incorporating multi-threading into the ''STEP-Libraries'' we must ensure that the libraries are thread safe or else we might run into data races which are hard to debug leading to a detrimental impact on development. | ||
+ | |||
+ | ==Project Summary== | ||
+ | The Project can roughly divided into 3 major tasks. A detailed description of each is given in the following sections. | ||
+ | ===Improve Thread Safety=== | ||
+ | This is the first priority for this project. Starting with ''cllazyfile'' STEP library, I would introduce thread safety in the ''cleditor'', ''clstepcore'' & ''src/cldai'' respectively in that order. | ||
+ | |||
+ | ===Introduce Multi-threading into the STEP Libraries=== | ||
+ | This task is highly dependent upon the first task. Once the concerned library has been deemed to be thread safe, we can start taking advantage of it to boost performance. As a proof of Concept, I intend to at-least one multi-threaded task. | ||
+ | |||
+ | ===Performance Tweaks in Single Threaded Code=== | ||
+ | This is a kind of a filler task. Since the 1<sup>st</sup> task would involve going through and understanding the code written in the aforementioned libraries. I would use that opportunity to point out, discuss and implement small tweaks which would increase the performance of the single threaded code. |
Revision as of 13:04, 14 March 2014
Contents
Personal Information
Name: Pulkit Mittal
E-Mail: bhangarval@gmail.com
IRC Nick: hoiji
Project Title
STEP Libraries : Improving Thread Safety and Performance
Project Introduction
Motivation
STEP is the current standard for exchange of CAD data between different software packages. A STEP-File (also called Part21 file) is the most widely used data exchange form of STEP. Part21 files may be very huge (hundreds of Mb). These files are known to be heavily resource consuming (in terms of computing time or memory consumption) when being imported. The computing time taken by the processing of such files can be significantly reduced by using multi-thread programming techniques.
However before incorporating multi-threading into the STEP-Libraries we must ensure that the libraries are thread safe or else we might run into data races which are hard to debug leading to a detrimental impact on development.
Project Summary
The Project can roughly divided into 3 major tasks. A detailed description of each is given in the following sections.
Improve Thread Safety
This is the first priority for this project. Starting with cllazyfile STEP library, I would introduce thread safety in the cleditor, clstepcore & src/cldai respectively in that order.
Introduce Multi-threading into the STEP Libraries
This task is highly dependent upon the first task. Once the concerned library has been deemed to be thread safe, we can start taking advantage of it to boost performance. As a proof of Concept, I intend to at-least one multi-threaded task.
Performance Tweaks in Single Threaded Code
This is a kind of a filler task. Since the 1st task would involve going through and understanding the code written in the aforementioned libraries. I would use that opportunity to point out, discuss and implement small tweaks which would increase the performance of the single threaded code.