The Hyper-Threading Technology (A Parallelization )is used to improve the parallelization of computation by doing multiple tasks at one time. This is done by duplicating certain parts of the processors but not main execution resources. Due to this, the hyper thread processor appears like a usual physical processor and an extra logical processor. These processors allow the operating system to work simultaneously and schedule two threads or processes at one time. When a execution resource is not used by the current task in a processor, then that execution resource is used to execute another scheduled task. For each physically present processor, the operating system presents two virtual or logical cores to share the work load between them. This is done to reduce the number of the dependent tasks on the pipeline. The technology is like a SMT (Simultaneous multithreading technology) to run multiple threads of software simultaneously. The technology provides TLP(Thread level parallelism) on each processor to improve performance.
Working of the technology ???
The Parallelization technology is based on the multi-processors-threading concept in which a work load is handeled by scheduling the tasks accordingly to the time counsumes. As some parts of the main processor is duplicated or reproduced virtually. Now we have two processors at the ame time but the main processor is kept same. Now the operating system schedules the tasks or threads simultaneously on the both processors. When there is one idle processor, it is used by other tasks available in the waiting. So the overall performance is improved. For this the schedular is used that manage this scheduling. So to use the multi-threading technology efficiently, the schedular must be programmed correctly.
For example : if we have two hyper thread processor like p1 and p2. Now by multi-threading we make it double as p11,p12,p21,p22. Now these four processors can work simultaneously and effectively. Now if the Operating system is not programmed well,then both of the processors will work as one. So now p11,p12 will execute entire program and other processors will remains idle. This would decrease the performance of the system.
Threading Algorithim : The technology has following threading algorithim.
1. Time-Slice : In this also, each processor is allocated to a thread part for a specific time interval. When the time interval expires, the processor is allocated to another task in waiting. If one process is in waiting state, then it would be very expensive algorithm.
2. Switching on Event : if one task is taking too much time, then switching of the events is processed. If the data is coming from a very slow resource then CPU is provided to another task.
3. Multiprocessing : In this, the load is distributed over many processors to handle it. This adds extra cost.
4. Simultaneously multithreading : In this multiple threads are executed on a single processor with switchning. This is the basis of the technology.
Advantages : Following are the benefits of it.
1. Handle heavy workload
2. Reduce the execution time1. Handle heavy workload
3. Improve the reaction and response time
4. Compatible with server application and operating system.
Disadvantages : It has following disadvantages.
1. Serial Execution is possible
2. Resourse confliction
3. Need extra Design
4. Non deterministic thread
5. Increases overhead.
1. Video Decoding
2. Video Information Reading
3. Image-Domain Watermark detection
4. Video Information Processing
5. Video Information Writing
Conclusion : With this multi-threading processing technology, you can decrease your execution time as well as can increase the performance of the CPU. This uses any idle resource waiting for another module or thread. So a group of small resources are provided to a number of threads and then they are separately processed.
Posted by : Vijay Kumar Goyal