TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Applications of parellel computing
1. 1. Airfoil Design
- An airfoil design technique has been developed which decreases the computational processing time when
optimizing aerodynamic performance. If an optimization technique is used for airfoil design, the
shape of the airfoil is varied, and the aerodynamic performance of numerous airfoil geometries are
evaluated using computational fluid dynamics.
- Multiple aerodynamic performance evaluations require the vast majority of computational
processing time used in airfoil design optimization.
- Hypercube parallel computer are utilized to simultaneously evaluate the performance of numerous airfoil
shapes.
- The utilization of multiple processors in parallel greatly decreases the computational processing time and
increases the efficiency of the optimization design process.
How it works:
- Airfoil design via optimization methods require numerous CFD solutions to compute the aerodynamic
performance of different airfoil geometries.
- In the design process, independent variables are perturbed to determine which geometry best approximates
the design criteria.
- For airfoil design, the designer must first select the desired performance criteria.
- Next, independent variables are used to describe the geometry of the airfoil's shape.
- After an initial CFD solution and performance evaluation are calculated, It match the performance criteria.
- The performance of many airfoil shapes are then evaluated using CFD, and the geometry which comes
closest to the desired performance becomes the baseline solution to vary for the next optimization cycle.
- This process is repeated until an airfoil geometry is found which matches or optimizes the desired
performance.
- An optimization has been developed which divides the required performance evaluations among multiple
processors.
- The aerodynamic performance of numerous airfoil geometries simultaneously and greatly decreases the
time required for airfoil design,
2. Database
- Parallel processing is becoming increasingly important in the world of database computing.
- As databases grow to enormous sizes and are accessed by larger and larger numbers of users. This growth
strains the ability of single-processor and single-computer systems to handle the load.
- More and more organizations are turning to parallel processing technologies to give them the performance,
scalability, and reliability they need.
- Oracle Corporation is a leader in providing parallel processing technologies.
2. Need :
Speedup
Database sizes have been increasing steadily, and it's now quite common to find data warehouses holding
several hundred gigabytes of data. Some databases, referred to as Very Large Databases (VLDBs), even hold
several terabytes of data. Complex queries are run on these data warehouses to gather business intelligence and
to aid in decision making. Such queries require a lot of processing time to execute. By executing these queries in
parallel, you can reduce the elapsed time while still providing the required processor time.
Speedup is defined as the ratio between the runtime with one processor and the runtime using multiple
processors. It measures the performance improvement gained using multiple processors instead of a single
processor and is calculated using the following formula:
Speedup = Time1 / Timem
Time1 is the time it takes to execute a task using only one processor, while Timem is the time it takes to execute
that same task using m processors.
Speedup exampleFigure 1-1 shows a query that takes four minutes to complete using one processor, but that
takes only one minute to complete using four processors.
Figure 1-1. Parallel processing speedup
Speedup = 4 / 1
Speedup = 4.0
In this case, the speedup is 4. Multiplying the number of processors by 4 caused the query to finish in one-fourth
the time. Unfortunately, such an ideal result is seldom achieved in real life.
Scalability
3. Scalability is the ability to maintain performance levels as the workload increases by incrementally adding more
system capacity (adding more processors and disks). On a single-processor system, it is very difficult to achieve
scalability beyond a certain point. Parallel systems provide better scalability.
High Availability
- As Databases are used in the mission-critical applications in organizations such as stock exchanges, banks,
and airlines. Many database applications are expected to be available 24 hours a day, 7 days a week, all
year round.
- The availability of such databases (along with other system components) is crucial to the success of these
organizations. With an e-commerce application,
- for example, customers may log in any time of the day or night to request products and services.
- Database downtime causes loss of revenue and customer dissatisfaction.
- As the negative impact of database downtime has increased for many applications, high availability
requirements have become an important factor.
- Running parallel databases on a multinode parallel system is one way to provide high availability
- Even one node goes down, it affects only the subset of users connected to the failed node; moreover, users
of the failed node still can access the database after switching to one of the surviving nodes.
Types of Parallelism in Databases
Database applications can exploit two types of parallelism in a parallel computing environment: inter-query
parallelism and intra-query parallelism. While inter-query parallelism has been around for many years, database
vendors recently have started to implement intra-query parallelism as well.
Inter-query parallelism
Inter-query parallelism is the ability to use multiple processors to execute several independent queries
simultaneously. Figure 1-4 illustrates inter-query parallelism, showing how three independent queries can be
performed simultaneously by three processors. Inter-query parallelism does not provide speedup, because each
query is still executed by only one processor.
In online transaction processing (OLTP) applications, each query is independent and takes a relatively short time
to execute. As the number of OLTP users increases, more queries are generated. Without inter-query parallelism,
all queries will be performed by a single processor in a time-shared manner. This slows down response time. With
inter-query parallelism, queries generated by OLTP users can be distributed over multiple processors. Since the
queries are performed simultaneously by multiple processors, response time remains satisfactory.
4. Figure 1-4. Inter-query parallelism
Intra-query parallelism
Intra-query parallelism is the ability to break a single query into subtasks and to execute those subtasks in parallel
using a different processor for each. The result is a decrease in the overall elapsed time needed to execute a
single query. Intra-query parallelism is very beneficial in decision support system (DSS) applications, which often
have complex, long-running queries.
Figure 1-5 shows how one large query may be decomposed into two subtasks, which then are executed
simultaneously using two processors. The results of the subtasks then are merged to generate a result for the
original query. Intra-query parallelism is useful not only with queries, but also with other tasks such as data
loading, index creation, and so on.
Figure 1-5. Intra-query parallelism
Parallel Processing in Oracle
Most modern commercial DBMS products have implemented parallel features, and Oracle is no exception. With
every release, Oracle has consistently improved its support for parallel processing. Oracle's support for parallel
processing can be divided into the following two specific feature sets:
Parallel execution :Refers to intra-query parallelism
5. Parallel server :Refers to the use of multiple instances to open a single, shared database
Parallel Execution
Oracle's parallel execution features enable Oracle to divide a task among multiple processes in order to complete
the task faster. This allows Oracle to take advantage of multiple CPUs on a machine. The parallel processes
acting on behalf of a single task are called parallel slave processesThe following SQL statement counts the
number of orders in the orders table:
SQL> SELECT COUNT(*) FROM orders;
When you execute this statement serially--that is, without using any parallel execution features--a single process
scans the orders table and counts the number of rows. However, if you had a four-processor machine and used
Oracle's parallel execution features, the orders table would be split into four parts. A process would be started on
each CPU, and the four parts of the table would be scanned simultaneously. The results of each of the four
processes then would be merged to arrive at the total count. Figure 1-6 illustrates this situation.
Figure 1-6. Serial and parallel scans of a table
Oracle's parallel execution support extends far beyond simply executing SELECT statements in parallel. The full
range of features includes all of the following:
Oracle Parallel Server
Oracle Parallel Server (OPS) enables one database to be mounted and opened concurrently by multiple
instances. Each OPS instance is like any standalone Oracle instance and runs on a separate node having its own
CPU and memory. The database resides on a disk subsystem shared by all nodes. OPS takes parallelism to a
6. higher plane by allowing you to spread work not only over multiple CPUs, but also over multiple nodes. OPS
offers many more advantages that we'll explain later in this section.
Figure 1-7 illustrates an OPS database comprised of two nodes. Each node runs one Oracle instance. Each
instance has its own set of background processes and its own System Global Area (SGA). Both of the instances
mount and open a database residing on a shared disk subsystem.
Figure 1-7. Oracle Parallel Server allows many
instances to operate on a single database
3. Weather Forecasting
- Weather forecasting provides another real-life example of parallel processing at work.
- Satellites used for weather forecasting collect millions of bytes of data per second on the condition of
earth's atmosphere, formation of clouds, wind intensity and direction, temperature, and so on.
- This huge amount of data has to be processed by complex algorithms to arrive at a proper forecast.
- Thousands of iterations of computation may be needed to interpret this environmental data.
- Parallel computers are used to perform these computations in a timely manner so a weather forecast can
be generated early enough for it to be useful.
4. Motion of Astronomical bodies
- One more scientific applications foe parallel processing is motion of astronomical bodies.
- Predicting the motion of astronomical bodies requires a huge number of calculations
- There are numerous bodies in space other by gravitational forces. Although the calculations is done using
simple formulae but a massive amount of calculations is required to predict the motion of each body as
forces from many other bodies are acting on it.
- If there are N bodies in the space, there will be N-1 forces acting on each body, so there will be
approximately N2 calculations and these calculations must be repeated with each change at position.
- Therefore parallel processing is required for such calculations.