Project Materials




Need help with a related project topic or New topic? Send Us Your Topic 




The task of monitoring the behaviour of a programme execution is known as performance analysis. The main purpose is to determine what improvements could be made to improve the performance of the computer system in use.

To achieve that improvement, it is required to identify the various causes/contributors of overhead. We are already in the multicore age, but there is a gap in the development of the two main divisions of multicore technology (hardware and software).

This project is concerned with performance analysis, tuning of applications running specifically in a shared memory system, and the development of apps that extract system characteristics and configurations automatically.

This application was created with OODM and implemented in C#, and it is compatible with any Windows operating system.

This project’s application critically studies multicore systems, determines various causes of overhead in multicore environments, extracts system characteristics, and presents possible optimisation strategies.



With computers playing an increasingly significant role in our daily lives, it is critical to understand their components, how they work, and what impact they have on computer system performance.

According to (Arnold, 1994), computer performance is defined as the quantity of useful work completed by a computer system in relation to the amount of time and resources used.

Good computer performance is based on the available system resources depending on the context. Most computer users are unaware of the system specification; they are unaware of the conventional method of extracting system parameters;

however, with the computerised system described in this thesis (also known as Autospec), all computer users will be able to determine the system configuration by installing and running the software.

System development is analogous to building a house in that it necessitates appropriate planning and preparation in order to satisfy the objectives of the proposed design.

The following are the parameters or resources of importance in our analysis:
OS (operating system)
CPU RAM Disc drives
Drives for optical media
Motherboard Graphics
Audio Peripheral Performance
The activity of analysing the behaviour of programme execution is known as performance analysis (Mario, 2009). The major goal is to determine what changes could be made to improve the performance of the computer system.

Furthermore, the hardware architecture and software platform (operating system) on which a programme runs have an impact on its performance. Workload characterization entails researching the user and machine environments, observing essential characteristics, and creating a workload model that can be reused.

Once a workload model is established, the impact of changes in the workload and system can be simply examined by adjusting the model’s parameters.

This is possible by utilising compiler directives such as the OpenMP multithread application. Furthermore, workload categorization can assist you in determining what is normal, establishing a baseline for historical comparison, complying with management reporting, and identifying candidates for optimisation.

Multicore processor chips are now being deployed in practically all sectors where a computer is required. Many laptop computers, for example, contain a twin core processor.

High Performance Computing (HPC) addresses a variety of difficulties, one of which is the utilisation of multicore architecture capacities (Mario, 2009).

Multicore processor chips are now being deployed in practically all sectors where a computer is required. Many laptop computers, for example, contain a twin core processor.

High Performance Computing (HPC) addresses a variety of difficulties, one of which is the utilisation of multicore architecture’s capabilities.

Performance analysis and optimisation is a branch of HPC that examines the behaviour of applications that do large amounts of computation. Some applications that do a large number of computations necessitate analysis and tweaking.

As a result, in order to improve performance, it is vital to identify the various reasons of overhead.
There have been several studies on the performance analysis and optimisation of applications for supercomputing, but there have been relatively few studies on applications running in a multicore environment.

A multicore system is made up of two or more separate cores (or CPUs). The cores are often integrated into a single circuit die (known as a chip multiprocessor or CMP) or many dies in a single chip package.

This thesis investigates the challenges involved in the performance analysis and tuning of applications running in shared memory, as well as the building of a computerised system for collecting system specifications for prospective adjustments.

Because multicore hardware is substantially more developed than multicore software, this research is necessary. We would want to emphasise that this is an active area of research, and there are just a few early findings in terms of recognised standards and technology in the academic and corporate realms, but much more will emerge in the next years.

For several years, computer technology has been undergoing a period of rapid progress.
According to Moore’s law, CPU speed has been rapidly growing. Every new generation of microprocessor has a clock rate that is usually twice as fast as the previous one.

The increase in clock frequency caused advances in CPU performance, but it also increased the disparity between processor and memory speed. Instruction level parallelism (ILP) momentarily bridged this gap (Faxen et al, 2008).

Exploiting ILP entails running instructions that are near to each other in the instruction stream through the processor in parallel.

Though it became clear very quickly that more and more cycles were being spent not in processor core execution, but in the memory subsystem, which included the multilevel caching structure and the so-called Memory Wall, the problem began to evolve quite significantly because the increase in memory speed did not match that of processor cores.

Very quickly, a new direction for improving total computer system performance was presented, namely modifying the topology of the CPU subsystem to use many processor cores on a single chip.

These new computer designs were dubbed Chip Multi Processors (CMP) and enabled greater performance for new generation systems while retaining individual processor core clock rates at an acceptable level.

As a result of this architectural change, it became possible to provide further performance improvements while keeping the power consumption of the processor subsystem almost constant, a trend that appears essential not only to power sensitive market segments such as embedded systems, but also to computing server farms that suffer from power consumption/dissipation issues.

Some of the benefits of shared memory CMP include:

• Direct access to data via shared memory address space;

• Greater latency concealing technique; and • MPs appear to have reduced power and cooling requirements per FLOP.

CMP is classified into two categories.
There are those with a few very powerful cores, virtually the same core as a single core CPU. AMD Athlons, Intel Core 2, IBM Power 6, and other processors are examples.

Some systems compromise single core performance for the number of cores, restricting core area and power. Tilera 64, Intel Larrabee, and Sun UltraSPARC T1 and T2 (also known as Niagara 1-2) are a few examples.

Figure 1.1 depicts the basic architecture of a twin core CPU.
Figure 1.1 depicts a dual core MCP (Multicore Processor) construction.

Multicore hardware technology is rapidly evolving. There is a development gap between multicore hardware and multicore software technology.

Multithread programmes may not always take full use of multicore hardware design, particularly if the user lacks in-depth understanding of the system parameters.

Most people can identify the processor, how much RAM it has, and how large the hard drive is by looking at the stickers or tags on the PC,

and a user can also get this basic information by right clicking my computer and then clicking on properties, but this leaves out a lot of information about your system, such as the graphic card, motherboard type, cache type, and temperature of some hardware, among other things.

The following are the primary objectives of this work:
To create an application that will assist all computer users in automatically extracting system parameters.
Determine the primary sources of overhead in a multicore scenario.
To implement the necessary measures/changes in order to make better use of hardware resources and hence achieve improved performance.

Autospec is a piece of software that works as a sticker for your computer. It evaluates and displays statistics on all of your computer’s hardware.

CPU, Motherboard, RAM, Graphics card, Operating systems, Hard Discs, Optical Drives, and Audio support are all included. Autospec also includes the temperatures of your various components so you can readily detect if there is a problem, as well as an interface for checking for software updates.

It undoubtedly assists any PC user, particularly beginners in regular computer life, in troubleshooting, diagnostics, replacement, process control, and implementing some settings, among other things.

There are two major areas of multicore technology: hardware and software. However, the application is focused on the hardware. The created software will be able to retrieve system specifications from any multicore computer system running Windows.

MULTICORE: A multicore architecture is one in which a single physical processor contains the core logic of many processors. These processors are packaged or held in place by a single integrated circuit.

A single integrated circuit is referred to as a die.

MULTITHREADING: A form of execution model in which several threads can exist within the context of a process and execute independently while sharing process resources.

In the address space of its hosting process, a thread keeps a list of information important to its execution, including as the priority schedule, exception handlers, a set of CPU registers, and stack state.

TUNNING: is the process of improving system performance by modifying settings such as the processor, secondary storage devices, main memory, and application.

This is a design pattern that encompasses useful architectural and code design patterns that can lead to the construction of more maintainable and evolvable software.

OpenMP (Open Multi-Processing) is a programming interface that provides multi-platform shared memory multiprocessing programming in C, C++, and Fortran on most processor architectures and operating systems, including Solaris, AIX, HP-UX, GNU/Linux, Mac OS X, and Windows.

COMPUTER PERFORMANCE: is defined as the quantity of valuable work completed by a computer system in relation to the time and resources used.

Need help with a related project topic or New topic? Send Us Your Topic 


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.