Design and Development of a Parallel Lexical Analyzer for C Language

Design and Development of a Parallel Lexical Analyzer for C Language

Swagat Kumar Jena, Satyabrata Das, Satya Prakash Sahoo
Copyright: © 2018 |Pages: 15
DOI: 10.4018/IJKBO.2018010105
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Future of computing is rapidly moving towards massively multi-core architecture because of its power and cost advantages. Almost everywhere Multi-core processors are being used now-a-days and number of cores per chip is also relatively increasing. To exploit full potential offered by multi-core architecture, the system software like compilers should be designed for parallelized execution. In the past, various significant works have been made to change the design of traditional compiler to take advantages of the future multi-core platform. This paper focuses on adapting parallelism in the lexical analysis phase of the compilation process. The main objective of our proposal is to do the lexical analysis i.e., finding the tokens in an input stream in parallel. We use the parallel constructs available in OpenMP to achieve parallelism in the lexical analysis process for multi-core machines. The experimental result of our proposal shows a significant performance improvement in the parallel lexical analysis phase as compared to sequential version in terms of time of execution.
Article Preview
Top

Multi-Core Architecture

A Multi-core processor is an integrated circuit die (known as a chip multiprocessor or CMP) with two or more independent actual central processing units called “cores”. Each processor has its own primary cache and pipelined. The multiple cores processors can run multiple instructions at the same time, increasing the overall execution speed for programs which yields to parallel computing. Now-a-days almost all high-performance processors are belonging to multi-core family. While it is generally accepted that we have entered the multi-core era, but still researchers are concerned on scaling and adapting software to multi-core platform.

Some examples of multi-core processors are as follows; Intel Pentium D, Dual Core Opteron, Intel Montecito, Intel Xeon E7-2820 with 8 cores, Sun UltraSPARC IV, IBM Cell, Intel WoodcrestIBM Power4, IBM Power, AMD Quad- and Dual-Core UltraSPARC T1, AMD FX-8150 with 8 cores,Adapteva Epiphany with up to 4096 processors on-chip, SEAforth 40C18, a 40-core processor by IntellaSys etc. This represents the scalability of multi-core architecture.

Figure 1 shows a multi-core architecture with two nodes. One node is based on Non-Uniform Memory Access (NUMA) based design and other is based on Symmetric Multi-Processing (SMP) based design. In NUMA memory access times of cores can be different where as in SMP memory access times of cores are similar. Each core has similar structure in both nodes and has its private L1 cache. Two nodes can be connected through interconnection network like mesh, bus, and ring network.

Figure 1.

This figure shows multi-core architecture with two nodes. One node is based on NUMA (Non-Uniform Memory Access) based design and other one is based on SMP (Symmetric Multi-Processing) based design, two nodes can be connected through interconnection network.

IJKBO.2018010105.f01

Complete Article List

Search this Journal:
Reset
Volume 14: 1 Issue (2024): Forthcoming, Available for Pre-Order
Volume 13: 1 Issue (2023)
Volume 12: 4 Issues (2022): 3 Released, 1 Forthcoming
Volume 11: 4 Issues (2021)
Volume 10: 4 Issues (2020)
Volume 9: 4 Issues (2019)
Volume 8: 4 Issues (2018)
Volume 7: 4 Issues (2017)
Volume 6: 4 Issues (2016)
Volume 5: 4 Issues (2015)
Volume 4: 4 Issues (2014)
Volume 3: 4 Issues (2013)
Volume 2: 4 Issues (2012)
Volume 1: 4 Issues (2011)
View Complete Journal Contents Listing