Free Essay

Challenges for Multicore Programming

In: Computers and Technology

Submitted By ranajoymalakar
Words 1388
Pages 6
| Challenges for multicore programming |

In 1965, Gordon E. Moore, co­founder and chairman emeritus of Intel Corporation made an observation that “the number of transistors placed inexpensively on integrated circuit will double approximately every two years”. This simple observation led to Moore’s Law, which has held true till recent times. Around 2004, single CPU clock speed scale ups hit what is today know as the “power wall”, when further power consumption and clock speed improvements became impossible. The problem at 90nm of silicon was that transistor gates became too thin to prevent current from leaking out into the substrate. None of the new technologies after 2004 has re-enabled anything like the scaling in the 90s. From 2007 to 2011, maximum CPU clock speed (with Turbo Mode enabled) rose from 2.93GHz to 3.9GHz, an increase of 33%. From 1994 to 1998, CPU clock speeds rose by 300%. CPU manufactures hence were forced to shift towards increasing processor count per die. Most processors today have at least 4 cores, while the higher end machines commonly have 16 cores or more. This brought in the era of multicore computing. However, increasing the number of cores does not necessarily mean faster processing. The software written for the multi core computers of today must be able to utilize the additional processing power resident in the extra cores. Today’s software therefore has to be written for multicore computers, and sequential modes of computation in software must be replaced by parallel processing to harness the power of the additional cores. However, most software in the world, excluding specialized cases of high performance computing and ADA, has always been sequential in nature. The sudden influx of multicores meant a complete new paradigm of programming, and while a considerable work has been done in this regard, programming multicores still proves to be a difficult problem.

In order to understand the challenges of creating software for multicore platforms, one must first understand the platform itself. Multicore machines are shared memory systems with uniform memory access time, implying that each execution unit usually has access to the whole system memory. Input output operations and disk access is usually serialized, making disk accesses and general input output operations very expensive in terms of time and synchronization. As the name implies, multicores necessarily have more than one processor, today usually 4 or more processors, on the same die. Therefore any software that can express itself in terms of tasks that can run in parallel on separate cores with minimal synchronization or disk access will yield maximum performance benefit from multicore machines. Whether a software code is expressible in such a form is however dependant on its algorithm and structure, and while some algorithms are inherently suited for parallel programming, many are not. Many algorithms in the domain of image processing require little or no interaction between tasks that process subparts of the image, and such algorithms, usually referred to as embarrassingly parallel algorithms, can be easily expressed as parallel tasks. On the other hand, iterative algorithms that depend on the output of the previous run are remarkably difficult, and sometimes impossible to parallelize. It can thus be easily surmised that one of the main tasks of programming for multicores is expressing the algorithm of the program as a set of parallel tasks. Most algorithms also need some synchronization between tasks, and may need a final reduction step to create the final output. If multiple approaches to parallelization of an algorithm are found, Amdahl’s law can be used to select the best approach to parallelization. A very commonly used law in the world of multicore programming, Amdahl’s law attempts to quantify the speedup produced by parallelizing software for multicores. Amdahl’s law states that if you enhance a fraction f of a computation by a speedup S, the overall speedup is: Speedupenhanced (f, S) = 1 / ( (1-f) + (f/S) ).
While Amdahl’s law can estimate the speed up gained by parallelizing software, it does not guide the programmer about how to create a parallel algorithm or software for a given problem. When it is required to create a parallel, multicore enabled version of existing software, often the programmer has to understand, analyze and redesign the software in order to achieve maximum benefits. In the initial days of multicore based computing, several attempts were made alleviate the complexity of parallelization by using auto parallelizing compilers. Compiler-based auto-parallelization is a much studied area, yet has still not found wide-spread application. This is largely due to the poor exploitation of parallelism inherent in program logic (often referred to as application parallelism), subsequently resulting in performance levels far below those which a skilled expert programmer could achieve. Most of today’s approaches for parallel programming for multicores depend on the programmer’s ability to create and express an algorithm as a parallel program using the various languages or libraries available for multicore programming.
Multicore programming can be achieved using are various programming models and libraries. Thread based models utilize multiple threads to express parallelism. However, if number of threads in execution is explicitly created and managed by the programmer, then the scalability of the program for target hardware of the future with larger number of cores becomes an issue. For this reason, explicit creation and management of threads is discouraged in parallel programming. Today’s parallel programming models like OpenMP, Intel’s thread building blocks and Cilk utilize what is known as user guided parallelism. In this model, the programmer is responsible for identifying parallel tasks within his/her code, but he/she does not explicitly write threads to handle these parallel tasks. Rather, these parallel units are indicated to the compiler through either specific classes or language extensions, and then the compiler, along with other supplied indications, is responsible for management of number of threads. This model is intended to provide excellent opportunities for scale up for future multicores with larger number of cores. Compilers today also utilize instruction level parallelisms to boost performance further.
While application level parallelism yields best performance gains, sometimes it is very difficult to achieve for large legacy software systems. It is also possible to gain substantial performance gains by using parallel libraries and data structures. For many commonly used mathematical operations, parallel versions are readily available in the market. MATLAB from Mathworks sells a parallel version that enable users to rum matlab code in parallel. Image processing library Imaging toolkit (ITK) also has a parallel version. By using these libraries, it is possible to gain substantial performance gain when running on a multicore without any major changes at code or algorithm level. Enterprises often use these libraries for quick and targeted performance enhancements for legacy code. All major languages today also provide parallel concurrent data structures which are inherently faster and thread safe, and language extensions that utilize parallelism. .Net language extensions contain concurrent data structures, and LINQ is a language extension that utilizes parallelism.

Multicores are here to stay and industry trends point towards largely parallel hardware architecture in the future. This is evident by Intel’s Knights Corner and AMD’s Fusion like products. The future may even move towards hybrid computing on heterogeneous platforms utilizing the cloud, NVIDIA’s GPUs and other many core devices. It is an urgent challenge today to create parallel computing technologies for tomorrow’s performance needs. Informatics plays a key role in this evolution, and must rise up to meet the challenge of how to make multicore computing easy and simple and out of the domain of specialists into the mainstream software development world.

Sources: 1. The death of CPU scaling: From one core to many — and why we’re still stuck: http://www.extremetech.com/computing/116561-the-death-of-cpu-scaling-from-one-core-to-many-and-why-were-still-stuck 2. Parallel Programming with Microsoft .NET: http://msdn.microsoft.com/en-us/library/ff963542.aspx 3. Introduction to Parallel Computing: http://computing.llnl.gov/tutorials/parallel_comp/#WhyUse 4. Automatic parallelization: http://en.wikipedia.org/wiki/Automatic_parallelization 5. Parallel computing: http://en.wikipedia.org/wiki/Parallel_computing 6. Rules for Parallel Programming for Multicore: http://www.drdobbs.com/parallel/rules-for-parallel-programming-for-multi/201804248 7. Parallel Computing Toolbox: http://www.mathworks.in/products/parallel-computing/ 8. OpenMP: http://www.openmp.org/ 9. Insight Segmentation and Registration Toolkit (ITK): http://www.itk.org/…...

Similar Documents

Free Essay

Programming

...Calling an external function or program that is written in a different programming language like a Java program within a Visual Basic program you first need to know the Function fundamentals that’s executed in any programming language. I came across this website called maples, where they have the ability to connect to and call functions from other programming languages. Maple uses this for various reasons. Like all other languages, the F# function has a name, it can have parameters, has a body and takes arguments. F# also supports functional programming constructs such as handling functions as values, depleting unnamed functions in expressions, composition of functions to form new functions, curried functions, and the implicit definition of functions by way of the partial application of function arguments. Maple's help system documents all the External Calling functions so you can see what is available. Briefly, however there are functions for converting Maple types to C and back, creating and interacting with Maple data structures creating and interacting with Maple language elements (names, procedures, etc), printing to the Maple interface, memory allocation, evaluating Maple statements and raising exceptions. There is even a C interface to the Task Programming Model. The function-name is an identifier that represents the function. The parameter-list consists of successive parameters that are separated by spaces. You can specify an explicit type for each parameter, as......

Words: 394 - Pages: 2

Premium Essay

Programming

...times 4 and stores the result in a c. Divides a by 3.14 and stores the result in b d. Subtracts 8 from b and stores the result in a 8. Write a pseudocode statement that assigns the sum of 10 and 14 to the variable total. 9. Write a pseudocode statement that subtracts the variable downPayment from the variable total and assigns the result to the variable due. 11. If the following pseudocode were an actual program, what would it display? Declare Integer a = 5 Declare Integer b = 2 Declare Integer c = 3 Declare Integer result Set result = a + b * c Display result 12. If the following pseudocode were an actual program, what would it display? Declare Integer num = 99 Set num = 5 Display num PROGRAMMING EXERCISES (Input, processing, and output) 2. Sales Prediction A company has determined that its annual profit is typically 23 percent of total sales. Design a program that asks the user to enter the projected amount of total sales, and then displays the profit that will be made from that amount. Hint: Use the value 0.23 to represent 23 percent 3. Land Calculation One acre of land is equivalent to 43,560 square feet. Design a program that asks the user to enter the total square feet in a tract of land and calculates the number of acres in the tract. Hint: Divide the amount entered by 43,560 to get the number of acres. 4. Total Purchase A customer is a store is purchasing five items. Design a program that asks......

Words: 1054 - Pages: 5

Free Essay

Programming

...the module in which its declared and only statements inside that module can access that module can access the variable. 5. The local variable usually beings at the variables declaration and ends at the end of the module which is then the variable is declared. 6. The difference between the both is that only a copy of the arguments value is passed and passing by reference means that the argument is passed into a specific type of parameter. 7. Global variables make debugging difficult because they make programming hard to understand, modules that use global variables are usually dependent and you have to track down every statement. Algorithm Workbench 1. Module main() Declare userNum as Integer Display “Enter a number” Input userNum Call TimesTen(usernum) Display usernum End 5. 13.4 00.0 00.0 6. 1, 3.4 0, 0 0, 0 7. Allows changes the values of passed parameters 1,3.4 0,0 0,0 Doesn’t allow changing of parameters 1,3.4 0,0 1,3.4 Programming Exercises 1. Kilo=input (“Enter distance in kilometers”) Miles=Kilo Print”, Kilo 2. Module TotalPurchase Declare Double amount, total Declare TAX=.06 While I<6 Display “Enter the price” Input amount Total=total+amount I=I+1 End while Display “Subtotal is:” + total Display “Tax is:” + (total*TAX) Display “Total is:”=(total*TAX)+total) End Module...

Words: 309 - Pages: 2

Free Essay

Programming

...Definitions ........................................................................................16 Datafile ............................................................................................................16 Record ..............................................................................................................16 Field ..................................................................................................................16 Key....................................................................................................................16 Search Key........................................................................................................17 A Quick Introduction to Object-Oriented Programming ......................................18 Problems with Procedural Languages ..............................................................18 Objects in a Nutshell ........................................................................................19 A Runnable Object-Oriented Program ............................................................21 Inheritance and Polymorphism ........................................................................24 New C++ Features ................................................................................................25 The string Class..............................................................................................25 The vector......

Words: 10065 - Pages: 41

Premium Essay

C++ Programming

... C++ PROGRAMMING: FROM PROBLEM ANALYSIS TO PROGRAM DESIGN FIFTH EDITION D.S. MALIK Australia  Brazil  Japan  Korea  Mexico  Singapore  Spain  United Kingdom  United States C++ Programming: From Problem Analysis to Program Design, Fifth Edition D.S. Malik Executive Editor: Marie Lee Acquisitions Editor: Amy Jollymore Senior Product Manager: Alyssa Pratt Editorial Assistant: Zina Kresin Content Project Manager: Matthew Hutchinson Art Director: Faith Brosnan Print Buyer: Julio Esperas Cover Designer: Roycroft Design/ www.roycroftdesign.com Cover Photo: ª Guntmar Fritz/Masterfile Proofreader: Green Pen QA Indexer: Elizabeth Cunningham Compositor: Integra ª 2011 Course Technology, Cengage Learning ALL RIGHTS RESERVED. No part of this work covered by the copyright herein may be reproduced, transmitted, stored or used in any form or by any means graphic, electronic, or mechanical, including but not limited to photocopying, recording, scanning, digitizing, taping, Web distribution, information networks, or information storage and retrieval systems, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without the prior written permission of the publisher. For product information and technology assistance, contact us at Cengage Learning Customer & Sales Support, 1-800-354-9706 For permission to use material from this text or product, submit all requests online at www.cengage.com/permissions Further permissions questions can......

Words: 11776 - Pages: 48

Free Essay

Programming

...- -[ ] http://blog.renren.com/blog/73603/740437492 » / [ ] 2011-07-18 10:47 | ( : ) http://coolshell.cn/articles/4990.html 6 12 programming An open letter to those who want to start id Mailper Python Web “ Build Your Programming Technical Skills “ ( ) Notes/ActiveX/COM/ADO/ATL/.NET …… Mailper Delphi/Power builder ” Lotus 5 3D TA 561 ” The architecture of w-ai.org –... Some updates and my first Engl... / 10 Unix/Linux Windows 1 Linux Web+ 1 Python/Ruby Web 2 iOS Android Windows Windows Windows Linux+ Windows 9 : csv ( log python csv, python open, python sys) 52 word count (sys, os, path) (python sqlite) print Google (phrase, domain, use reader to follow tech blogs) 2 ( Vim / Emacs / Notepad++ Source Insight ( ctag) Cool IDE) / / 3 Unix/Linux Shell windows man ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip … sed/awk/grep/tail/less/more … ps/top/lsof/netstat/kill/tcpdump/iptables/dd… /etc /var/log /proc linux vmware player Ubuntu 1 6 9/6/13 1:36 PM - -[ ] http://blog.renren.com/blog/73603/740437492 /Linux 4 Web Web HTML CSS HTML Firefox + Firebug Javascript HTML DOM Firefox + Firebug Apache PHP PHP PHP chrome Nginx HTML MySQL MySQL SQL http://www.stanford.edu/~ouster/cgi-bin/cs142-fall10/index.php ) javascript HTTP: The Definite Guide browsers) Cookie/Session jQuery 4 3-5 ExtJS + Ajax ( +JSON (proxy, gateway, Javascript box model chrome DOM......

Words: 807 - Pages: 4

Premium Essay

Programming Languages

...Unit 1 Research Assignment 1: Exploring Programming Languages Computers don't do anything without someone telling them what to do, much like the average teenager. To make the computer do something useful, you must give it instructions in either of the following two ways: * Write a program that tells a computer what to do, step by step, much as you write out a recipe. * Buy a program that someone else has already written that tells the computer what to do. Ultimately, to get a computer to do something useful, you (or somebody else) must write a program. A program does nothing more than tell the computer how to accept some type of input, manipulate that input, and spit it back out again in some form that humans find useful. Table 1 lists some common types of programs, the types of input that they accept, and the output that they produce. Essentially, a program tells the computer how to solve a specific problem. Because the world is full of problems, the number and variety of programs that people can write for computers is practically endless. But to tell a computer how to solve one big problem, you usually must tell the computer how to solve a bunch of little problems that make up the bigger problem. If you want to make your own video game, for example, you need to solve some of the following problems: * Determine how far to move a cartoon figure (such as a car, a spaceship, or a man) on-screen as the user moves a joystick. * Detect whether the cartoon......

Words: 3836 - Pages: 16

Premium Essay

Computer Programming

...THE INTEGRATION OF BASIC COMPUTER PROGRAMMING IN 5TH & 6TH GRADE OF SILLIMAN UNIVERSITY Management 35: Business Research 1st Semester School Year 2014-2015 TABLE OF CONTENTS Title Page Table of Contents Lists of Charts Lists of Tables CHAPTER 1 THE PROBLEM AND ITS SCOPE Introduction Theoretical Background: I. It will promote computer literacy. A. Computer literacy definition 1. Dictionary definition 2. Operational definition B. Importance of computer literacy 1. Home 2. School 3. Work place C. Applications of computer literacy 1. Home 2. School 3. Work place II. A suitable precursor to advance programming. A. Fundamentals of computer programming 1. Programming languages 2. Application programs B. Relevance to Higher levels of programming 1. Scope of learning 2. Applied learnings C. Relevance to Higher educational levels 1. Theoretical background for computer courses 2. Supplementary learnings III. An asset to latent employment opportunities. A. Improved skill-sets 1. Programming skills 2. Analytical skills 3. Mathematical skills B. Relevance to fields of work C. Real life applications The Problem Statement of the Problem Objectives Significance of the study Scope of the Study Definition of terms Research Methodology Research environment Respondents of the Study Sampling Techniques Research Instruments Data Collection Procedures ...

Words: 3374 - Pages: 14

Premium Essay

Linear Programming

...LINEAR PROGRAMMING II 1 Linear Programming II: Minimization © 2006 Samuel L. Baker Assignment 11 is on page 16. Introduction A minimization problem minimizes the value of the objective function rather than maximizing it. Minimization problems generally involve finding the least-cost way to meet a set of requirements. Classic example -- feeding farm animals. Animals need: 14 units of nutrient A, 12 units of nutrient B, and 18 units of nutrient C. Learning Objective 1: Recognize problems that linear programming can handle. Linear programming lets you optimize an objective function subject to some constraints. The objective function and constraints are all linear. Two feed grains are available, X and Y. A bag of X has 2 units of A, 1 unit of B, and 1 unit of C. A bag of Y has 1 unit of A, 1 unit of B, and 3 units of C. A bag of X costs $2. A bag of Y costs $4. Minimize the cost of meeting the nutrient requirements. To solve, express the problem in equation form: Cost = 2X + 4Y objective function to be minimized Constraints: 2X + 1Y $ 14 nutrient A requirement 1X + 1Y $ 12 nutrient B requirement 1X + 3Y $ 18 nutrient C requirement 8 8 Read vertically to see how much of each nutrient is in each grain. X $ 0, Y $ 0 non-negativity Learning objective 2: Know the elements of a linear programming problem -- what you need to calculate a solution. The elements are (1) an objective function that shows the cost or profit depending on what choices you make, (2) constraint......

Words: 4295 - Pages: 18

Premium Essay

Programming

...Question: Analyze, design, and document a simple program that utilizes a good design process and incorporates sequential, selection and repetitive programming statements as well as at least one function call and the use of at least one array. The specific problem you need to solve for the final project is: Design a program that will allow a user to Input a list of your family members along with their age and state where they reside. Determine and print the average age of your family and print the names of anyone who live in Texas. 2. What is the required output? What is the necessary input? How you will obtain the required output from the given input? Clearly describe variable names and definitions. Include all necessary formulas and example calculations. 3. Display pseudocode of your overall design including the Main module and the order of the module, subprogram and function calls. 4. Create a Hierarchy chart for the overall program in raptor 5. detailed pseudocode for each module, subprogram and function. 6. Add pseudocode comments with all major functionality and most minor functionality commented 7. Show test plan covering all major functionality and most minor functionality. Multiple Input and expected output provided for most modules. SOLUTION: Analysis: For this program, user will be asked for name, age and state of their family members, one by one, until the user decides to stop entering this information. To achieve the given task (printing average family......

Words: 919 - Pages: 4

Free Essay

Nios-Multicore Accelerator

...designs, reducing system complexity through compartmentalization of the design into discrete subsystems. Each subsystem exports user-defined interfaces, linking the subsystem hierarchy together. Nios II Multiprocessor Systems The Nios II SBT for Eclipse includes features to help with the creation and debugging of multiprocessor systems. Multiple Nios II processors are able to efficiently share peripherals thanks to the multimaster-friendly slave-side arbitration capabilities of the Qsys interconnect. Because the capabilities of Qsys allow you to almost effortlessly add as many processors to a system as desired, the design focus in building multiprocessor systems no longer lies in the arranging and connecting of hardware components. The challenge in building multiprocessor systems lies in writing the software for those processors so they operate efficiently together, and do not conflict with one another. To aid in the prevention of multiple processors interfering with each other, a hardware mutex core is included for Qsys. The hardware mutex core allows different processors to claim ownership of a shared peripheral for a period of time. This temporary ownership of a peripheral by a processor protects the shared peripheral from corruption by the actions of another processor. To prevent corruption, you must write software that waits to acquire the mutex before it accesses the shared peripheral, ensuring mutually exclusive access. A nonatomic test-and-set operation has a......

Words: 12538 - Pages: 51

Premium Essay

Programming

...flowcharts to describe a program’s structure. Use pseudocode to define a program’s structure. Formulate solution algorithms for calculations by properly following the order of operations. Assignment Requirements Answer: * Short Answer 1, 2, 3, and 4 on page 71 * Algorithm Workbench Review Questions 1 and 2 on page 71 * Programming Exercises Questions 1 and 4, starting on page 72 Required Resources Textbook Submission Requirements Submit your written answers to your instructor at the beginning of Unit 3. Unit 2 Research Assignment 1: Researching Variable Naming Rules Learning Objectives and Outcomes Determine program input, processing, and output stages. Create the necessary flowcharts to describe a program’s structure. Use pseudocode to define a program’s structure. Formulate solution algorithms for calculations by properly following the order of operations. Assignment Requirements Use the Internet and the ITT Tech Virtual Library to research the following questions: What are the variable naming rules of Visual Basic, Python, and Java? List three similarities and differences in between the three programming languages. Required Resources Textbook ITT Tech Virtual Library: http://library.itt-tech.edu Submission Requirements Submit your written answers to your instructor at the beginning of Unit 3. Labs Unit 2 Lab 2.1: Pseudocode Learning Objectives and Outcomes * Use pseudocode to define a program’s structure. *......

Words: 450 - Pages: 2

Free Essay

Programming

...Programming 1 - Semester 1, 2015 Assignment 1 Release Date: 27 / 02 /2015 Total raw marks: 60 Assignment weight: 6% NOTE: This assignment is to be undertaken individually—no group work is permitted. Background information For this assignment you are to complete a partially completed menu-driven, Java console application, which allows the user to select one of four options:     Display Time and Date Swim Fitness Summary Calculator Sentence Analyser Exit The incomplete code solution (in the source file called MenuDrivenProgram.java) is in the same Assignment 1 folder, available via myRMIT. The partially completed program already has code to display the menu. You should study the code and then compile and execute it without implementing the following options. This will allow you to understand the flow of execution of the program, as is. a) Once the processing for the selected option has been completed the program should return to the menu (that is, the program should not terminate). b) You do not need to handle runtime errors of any kind for this assignment and you may assume that the user will always enter input in the correct format. This applies both to the menu itself and the processing of the menu options. Program Features Menu Option A - Display Time and Date (10 marks) The program should retrieve the current time and date from the system and then display it in the format shown......

Words: 1404 - Pages: 6

Free Essay

C Programming

...Welcome to CS 241 Systems Programming at Illinois Robin Kravets Copyright ©: University of Illinois CS 241 Staff 1 The Team  Robin Kravets    TAs   Office: 3114 SC rhk@illinois.edu Wade Fagen, Farhana Ashraf, Hilfi Alkaff and Mainak Ghosh Discussion Sections   8 sessions (Thursdays 9, 10, 11, 12, 1, 2, 3, 4) All sections in SC 0220 Copyright ©: University of Illinois CS 241 Staff 2 News and Email  Announcements and discussions: Piazza  http://www.piazza.com/illinois/cs241     All class questions This is your one-stop help-line! Will get answer < 24 hours e-mail   cs241help-fa12@cs.illinois.edu Personal questions not postable on the news group Copyright ©: University of Illinois CS 241 Staff 3 The Textbook  Introduction to Systems Concepts and Systems Programming      University of Illinois Custom Edition Copyright © 2007 Pearson Custom Publishing ISBN 0-536-48928-9 Taken from:    Operating Systems: Internals and Design Principles, Fifth Edition, by William Stallings UNIX™ Systems Programming: Communication, Concurrency, and Threads, by Kay A. Robbins and Steven Robbins Computer Systems: A Programmer's Perspective, by Randal E. Bryant and David R. O'Hallaron Copyright ©: University of Illinois CS 241 Staff 4 Your CS 241 “Mission”  Come to class     Read textbook    20% 7:00 – 9:00 PM October 15th Final  3% 47% Longer MPs are worth a little more Midterm   Reading assignments posted on......

Words: 1748 - Pages: 7

Free Essay

Programming

... | name | nationality | 01 | Pat | British | 02 | Hilary | British | 03 | Sven | Swedish | 04 | Pierre | French | | Event | eid | description | winner | 01 | running |   | 02 | jumping |   | 03 | throwing |   | | Competes | cid | eid | 01 | 01 | 02 | 01 | 03 | 02 | 04 | 02 | 04 | 03 | | Select the BEST answer from the following options based upon the provided data and data structures: Select one: a. There is a British competitor in every event. b. Pierre does not compete in any event c. Sven has been entered in two events d. Pat is competing in the jumping event e. Hilary has entered only the running event Question 1 If we write a program in a programming language and switch to SQL when we require to use the database, then the SQL environment in use is known as _______ SQL. Select one: a. Real - time b. Dynamic c. PL - d. Embedded Question 2 Embedded SQL is which of the following? Select one: a. Hard-coded SQL statements in a program language such as Java. b. The process of making an application capable of generating specific SQL code on the fly. c. Hard-coded SQL statements in a procedure. d. Hard-coded SQL statements in a trigger. Question 3 In JDBC, what represents a single instance of a particular database session? Select one: a. a thread b. an opened connection c. a closed connection d. a pipe Question 4 A relational database query normally......

Words: 4344 - Pages: 18