Showing posts with label December 2017. Show all posts
Showing posts with label December 2017. Show all posts

Monday, May 11, 2020

What do you mean by directing manipulation and indirect manipulation


Q.What do you mean by directing manipulation and indirect manipulation? (5 M) (DEC 16 /MAY 16 /DEC 17)

Ans:-


Direct manipulation:-


  • Definition:- Direct manipulation (DM) is an interaction style in which users act on displayed objects of interest using physical, incremental, reversible actions whose effects are immediately visible on the screen.
  •  Example:
    • dragging a document to the trash
    • changing the size of a triangle by interacting with a visual representation of a triangle
    • inserting characters in a document by pointing to where they should go (with a mouse/cursor/insertion point) and then typing
    • “dialing” a phone number by pushing numbers on a keypad
    • playing a song using controls like a physical tape deck or CD/DVD player
Moving a file on MacOS using direct manipulation involves dragging that file from the source folder and moving it into the destination folder.
  • Characteristics:
    • The task objects are manipulated by physical actions, such as clicking or dragging, rather than by entering complex syntax.
    • There is a visible and continuous representation of the task objects and their actions. Consequently, there is little syntax to remember.
    • Rapid learning
    • Their effects on task objects are immediately visible.
    • Reversibility of (almost) all actions 
    • Users can explore without severe consequences 
    • Syntactic correctness 
    • every operation is legal
  • Disadvantages:
    • DM is slow
    • Repetitive tasks are not well supported.
    • Some gestures can be more error-prone than typing
    • Accessibility may suffer
Indirect manipulation:-

  • Indirect manipulation substitutes words and text, such as pull-down or pop-up menus, for symbols, and substitutes typing for pointing.
  • Most windows system are a combination of both direct and indirect manipulation 
  • Example:
    • A menu ma be accessed by pointing at a menu icon and then selecting it( direct manipulation)
    • The menu itself, however, is a textual list of operations (Indirect manipulation)
    • When an operation is selected from the list, by pointing or typing the system executes it as a command
  • Disadvantages:
    • The operation may be difficult to conceptualize
    • Graphics capability limited
    • Amount of space available for placing manipulation controls in the window border may be limited.
    • Difficult to remember all the necessary operations



Wednesday, May 6, 2020

What are the Advantages and Disadvantages of Digital or Graphical systems

Q. What are various advantages of Digital and Graphics System? (DEC 17) 5M

Q. What are the Advantages and Disadvantages of Digital or Graphical systems? Explain in brief. (DEC 16) 10M

Digital System
Advantage
  1. Have made possible many scientific, industrial, and commercial advances that would have been unattainable otherwise.
  2. Less expensive
  3. More reliable
  4. Easy to manipulate
  5. Flexibility and Compatibility
  6. Information storage can be easier in digital computer systems than in analog ones. New features can often be added to a digital system more easily too.
Disadvantage
  1. Use more energy than analog circuits to accomplish the same tasks, thus producing more heat as well.
  2. Digital circuits are often fragile, in that if a single piece of digital data is lost or misinterpreted the meaning of large blocks of related data can completely change.
  3. Digital computer manipulates discrete elements of information by means of a binary code.
  4. Quantization error during analog signal sampling.
Graphical System
Advantage
  1. Symbol recognized faster than text: Researchers have found that symbols can be recognized faster and more accurately than text and that the graphical attributes of icons such as shape and color are very useful for quickly classifying object, elements or text by some common property. These icons allow speedy recognition of the type of message being presented.
  2. Faster learning: It has been found that a graphical, pictorial representation aids learning and symbols can also be easily learned.
  3. Faster use and problem solving: Visual or spatial representation of information has been found to be easier to retain and manipulate and leads to faster and more successful problem solving. Symbols have also been found to be effective in conveying simple instruction.
  4. Easier remembering: Because of greater simplicity, it is easier for casual user to retain operational concepts.
  5. More natural: Graphical representations of objects are thought to be more natural and closer to innate human capabilities. It has also been suggested that human mind has a powerful image memory.
  6. Foster more concrete thinking: Displayed objects are directly in the high-level task domain or directly usable in their presented form. There is no need mentally to decompose tasks into multiple commands with complex syntactic form. The need for abstract thinking is therefore minimized.
  7. Fewer errors: More concrete thinking affords fewer opportunities for errors. Error messages are less frequently needed.
  8. Increased feeling of control: The user initiates actions and feels in control. This increases user confidence and hastens system mastery.
  9. Less anxiety concerning use: Hesitant or new users feel less anxiety when using the system.
  10. More attractive: Direct-manipulation system is more entertaining, cleverer and more appealing.
  11. May consume less space: Icons may take up less space than the equivalent in words.
  12. Replaces national languages: Language-based systems are seldom universally applicable. Icon possesses much more universally than text and much more easily comprehended worldwide.
  13. Easily augmented with text displays: Where graphical design limitations exist, direct- manipulation system can easily be augmented with text displays.
  14. Low typing requirements: Pointing and selection controls such as the mouse or trackball eliminate the need for typing skills.
  15. Smooth transition from command language system: Moving form a command language to a direct-manipulation system has been found to be easy.
Disadvantage
  1. Greater design complexity: Controls and basics alternatives must be chosen from a pile of choices numbering in excess of 50. The design potential may not necessarily result in better design, unless the choices are thoughtfully selected and consistently and simply applied. With graphics, the skill of the designer is increasingly challenged.
  2. Learning still necessary: The meaning of many words and icons may not be known. A severe learning and remembering requirement is imposed on many users, and it takes a while to get up to speed. System providers estimate that becoming accustomed to a graphical interface should require about eight hours of training. Other experts say the learning time is closer to 20 or 30 hours.
  3. Lack of experimentally-derived design guidelines: The graphical interface is still burdened today by a lack of widely available experimentally-derived design guidelines. Too many variables that must be controlled make meaningful cause and effect relationships very difficult to uncover.
  4. Inconsistencies in technology and terminology: The inconsistencies occur because of copyright and legal implication, product differentiation consideration, and our expanding knowledge about the interface.
  5. Working domain is the present: While direct-manipulation system provides context, they also require the user to work in the present.

How reading is important in UI Design?

Q. How reading is important in UI Design? Write your comments related to the quote "Poor Design may affect Reading"(DEC17) 5M

Reading is important in UI design:
Reading is an artificial skill that is learned by systematic training like play musical instruments or balancing a bicycle etc. Learning to read involves training the brain to recognize visual pattern, a gamut from low to high level runs to recognize patterns that our brains learn.
Poor design can affect reading.
1. Uncommon or familiar vocabulary.
Words that are not commonly in use should be avoided.
All computer geeke may be familiar with all these terms, but for people from other domains such as real estate agent furniture dealer such words become very difficult to decode and then understand the message, as a designer, it is your responsibility to make all users comfortable.
2. Difficult script and typefaces.
You may be tempted to use the various fonts available and make the interface interesting.
3. Tiny fonts.
The positive and enticing offers are in bold large fonts while the actual risk are in extremely small fonts. The intention behind tiny fonts should be only to ensure that your user skip this information easily.
4. Text on noisy background.
Having text written on a textured back reduces readability.
5. Information buried in repetition.
Reading the same information repeat may be in different tenses will make reader assume that these is nothing more in it.
6. Centered text or right aligned text.
Most of us are trained to read from to right.
In a centered or right alighted text, line begin at a different place.
Reading will not be an automatic anymore.

Explain what do you mean by keyboard Accelerators

Q. What do you mean by keyboard accelerators? Explain (DEC 16 / MAY 16/ MAY 19) 5M
Q,Explain what do you mean by keyboard Accelerators? (DEC 17 / MAY 18) 10M
1.      Menus often offer keyboard accelerators, key combinations that have the same effect as selecting the menu item.
2.      This allows more expert users, familiar with the system, to manipulate things with-out moving off the keyboard, which is often faster.
3.      The accelerators are often displayed alongside the menu items so that frequent use makes them familiar.
4.      Unfortunately most systems do not allow you to use the accelerators while the menu is displayed. So, for example. the menu might say
Find        F3                  
5.      However when the user presses function key F3 nothing happens. F3 only works when the menu is not displayed- when the menu is there you must press ‘F’ instead.

What is direct and indirect manipulation ?

Q. What is direct and indirect manipulation? (DEC 16 / MAY 16 / DEC 17 ) 5M
Q. Differentiate between direct and indirect manipulation. (MAY 19) 5M

Direct Manipulation
The term direct manipulation is given by Shneiderman (1982) as they possess the following characteristics:
i. The system is portrayed as an extension of the real world.
ii. Continuous visibility of objects and actions.
iii. Actions are rapid and incremental with visible display of results.
iv. Incremental actions are easily reversible.
Example for direct manipulation:
Driving an automobile
The scene is directly visible through the front window and performance of actions such as braking or steering has become common knowledge in our culture. To turn left, the driver simply rotates the steering wheel to the left. The response is immediate and the scene changes, providing feedback to refine the turn.
In the above example, a driver looking at an object directly manipulates the scenario by his sudden action, which can be referred as direct manipulation.


Indirect Manipulation
In practice, direct manipulation of all screen objects and actions may not be feasible because of the following:
i. The operation may be difficult to conceptualize in graphical system.
ii. The graphics capability of the system may be limited.
iii. The amount of space available for placing manipulation controls in the window border may be limited.
iv. It may be difficult for people to learn and remember all the necessary operations and actions.
When this occurs, indirect manipulation is provided. Indirect manipulation substitutes words and text, such as pull-down or pop-up menus, for symbols and substitutes typing for pointing.
Most window systems are a combination of both direct manipulation and indirect manipulation. A menu may be accessed by pointing at a menu icon and then selecting it (direct manipulation) or the menu itself is a textual list of operations (indirect manipulation).


Friday, May 1, 2020

Explain Goal Directed Design in detail

Q. Explain Goal Directed design process in brief. (5 M)(DEC 16/ MAY 19)
Q. Explain Goal Directed Design in detail.(5 M)(DEC 17)
Q. Write Short Note on: Goal Directed Design (5 M) (MAY 17/DEC 18/MAY 19)

Ans:-

Goal Directed Design Process(GDD):

  • Goal Directed Design is a user-centered methodology developed by Alan Cooper to address situations.
  • Goal directed design identifies the goals and behavior of a user.
  • In GDD basically two important factors i]User ii] Stockholders
  • GDD is combinations of following:
    • Stockholders interview
    • Market research
    • Detailed users model
    • user interview and persona
    • scenario based design
  • Goal Directed Design describes a six-step process as follows:
    1. Research 
    2. Modeling
    3. Requirement definition
    4. Framework definition
    5. Refinement phase
    6. Support
Fig: Goal Directed Design Process
1.Research:
  • This is initial phase to bridge the gap between the users and developer
  • The research generates information about potential or actual users.
  • Research help to identify behavior patterns and personas in the modeling phase
2.Modeling:
  • The outcome of research phase is synthesized into domain and user models.
  • Domain models includes information flow and work flow
  • Here we can identify the detailed persona, composite user arch types that represent distinct behavior,attitude and goals identified in research phase
3. Requirement definition:
  • This phase provides the much needed connectivity between the user and other models and design framework
  • This phase involves an analysis of persona data and functional needs (expressed in term of objects, actions, and contexts), prioritized and informed by persona goals, behaviors, and interactions with other personas in various contexts.
  • These are the requirements for each persona: the data they need to see and the functional needs they have for working with this data
4.Framework definition:
  • The framework is like sketching the layout for the house before detailed blueprints is created
  • In this phase a basic framework for the system behavior, visual design as well as physical form of design is proposed
  • In this phase interaction team may specify the interaction framework
5.Refinement phase:
  • In this phase enhances focus on design details and implementation 
  • It also helps in developing the storyboard in high detail 
  • Shortcoming in previous phase are altered or updated to provide user with goal oriented design
  • This phase is similarly to the Framework Definition phase, but with greater focus on task coherence, using key path and validation scenarios focused on story-boarding paths through the interface in high detail
6.Support phase:
  • This phase fulfill the futuristic requirements of the user. Even after user level acceptance,it is always recommended to carry out continuous refinement and additional development if required 

What do you mean by persona? Mention steps in constructing persona


Q.What do you mean by persona? Mention steps in constructing persona (MAY 16 / MAY 17)   10M
Q.Mention steps in constructing persona (DEC16 /DEC17 /MAY18 ) 5M
Ans -
  1. A persona is a prototypical user:
    -An imaginary, but very specific, example of a particular type of user.
    -Not “real”, but hypothetical.
  2. A persona is used to role-play through an interface design and check if the design would meet the needs of such a user.
  3. Steps in constructing persona:
    i. Personas can be adopted by various techniques.
    ii. Steps :
    a. Identify user behavioral patterns.
    b. Arrange interview as per user behavior.
    c. Recognize user behavioral patterns.
    d. Generate various user characteristics and relevant goals.
    e. Check for completeness of goals.
    f. Explain all attributes and behavior of user.
    g. Design various persona.

Goal directed design process in Human Machine Interaction

Q.Explain Goal Directed design process in brief. (DEC 16 / MAY 19) 5M
Q.Explain Goal Directed Design in detail. (DEC 17) 5M
Q.Write Short Note on: Goal Directed Design (MAY 17 / DEC 18 / MAY 19) 5M
Ans - The whole process of Goal directed design is broken down into six steps.
 
1. Research: 
In this stage you collect qualitative data about the users or potential users through field studies and interviews. You carry out a competitor analysis and interview key stakeholders to gather their requirements. When you’re finished you should be left with a set of instructions which describe how the product could be used.

2. Modelling:
The modelling stage can be broken down into two parts. In part one you define the domain model by building on the workflow patterns from the research stage. In part two you define the user model through the use of personas or key archetypes which represent identifiable groups of users.

3. Requirements Definition:
Stage three is critical for providing that link between the user model and other models. In this stage you focus on context scenarios to help define ‘a day in the life’ of a persona. You also consider business goals, technical considerations and brand guidelines during this stage but it’s the context scenarios which really make a big impact to the way you think and help generate a ton of ideas you might not have considered before.

4. Framework Definition:
During the framework definition stage you create the overall product concept and define the behavior and visual design of the product. You can also create prototypes during this stage.

5. Refinement:
In the refinement stage you place more focus on detail and refinement and at the end of this stage it’s recommended that you create your design documentation.

6. Development Support:
No matter how clear the vision is for the product things can and do change during development, budgetary and timeline concerns can affect which features get taken away or which new ones get added and it’s critical that the designer is on hand to offer advice and to make sure the overall design quality doesn’t get compromised.

Explain How Colours Play Major Role in Human Interface Design


Q.Explain How Colors Play Major Role in Human Interface Design (DEC 17) 10M
Q.Short note on: Colors(DEC 16) 5M
Ans - Colors play an important role in adding dimensions, reality and life to the screen vision.
Proper utilization of colors would help the user to discriminate between different objects or components on the screen and make the display more interesting to look at.
It also helps in emphasizing the logical constitution of the information.


Uses of colors
  • Colors must be used to support formatting of content on the screen. It plays an important role when the screen has to present humongous amount of information to be easily readable.
  • Colors are used to identify logical structure of ideas, processes, and sequences.
  • Colors can also enhance screen appeal.


Choosing colors:
Following factors should be considered for choosing colors:
  • Problems arising due to colors that effect the human visual system
  • Environment in which the colors will be displayed and viewed
  • The task user is performing
  • The way colors will be used
  • The physical hardware through which colors will be displayed.
Colors add more meaning to the product categories, emphasis important information, and provide context.


Common color meanings:
Actions and warnings are mostly presented in warm colors - Red, orange, yellow.
Background information usually cool - Green, blue, violet, purple
Some common color associations are given in table below:













Warm colors :  Action, response required, spatial closeness
Cool colors :  Status, background information, spatial remoteness

Mental Model

Q. Short Note on: Mental Model (DEC 16 / DEC 17) 5M
Ans -
  1. Mental models are representations of systems and environments derived from experience.
  2. People understand and interact with systems and environments by comparing the outcomes of their mental models with the real-world systems and environments.
  3. When the outcomes correspond a mental model is accurate and complete. When the outcomes do not correspond the mental model is inaccurate or incomplete.
  4. With regards to design there are two basics of mental models: mental models of how systems work (system models) and mental models of how people interact with systems (interaction models).
  5. Designers generally have very complete and accurate models but often have weak interaction models-i.e. they know much about how a system works but little about how people will interact with the system.
  6. Conversely users of a design tend to have sparse and inaccurate system models, but through use and experience commonly attain interaction models that are more complete and accurate than those of designers.
  7. Optimal design results only when designers have an accurate and complete system model attain an accurate and complete interaction model and then design a system interface that reflects an efficient merging of both models.
  8. Designers can obtain accurate and complete interaction models through personal use of the system, laboratory testing and direct observation of people interacting with the system or similar systems.
  9. Use of the system by the designer will reveal obvious design problems but will fail to reveal the problems of interaction that emerge when people are unfamiliar with the system.
  10. Laboratory testing is useful for evaluating designs in a controlled environment but most conducted with care as the artificial context and expectation effects can compromise the validity of the results.
  11. Direct observation in the target environment is the preferred method for acquiring accurate information about how people interact with systems but is costly and impractical for designs that are not yet publicly available.
  12. Design with people’s interaction model in mind. If there is a standard mental model for how something works, try to design leveraging that model.
  13. When this is not possible create an interaction experience that draws from common mental models as much as possible such as the desktop metaphor for computers.
  14. However, do not contrive design just to leverage a familiar model it is better to have people learn a new model that is clear and consistent than to use a familiar model that does not fit.


Thursday, April 30, 2020

What is a Data Race? Why Data Races are undesired? How Data Races can be avoided?

Q. What is a Data Race? Why Data Races are undesired? How Data Races can be prevented? (DEC 18, MAY 18, DEC 17) 10M
Q. Write a short note on Data Race. (MAY 19) 10M
Q. What is a Data Race? (MAY 17) 5M
Ans- Data race
A data race is a situation, in which at least two threads access a shared variable at the same time. At least on thread tries to modify the variable.

Races are typically caused by a human error: failure to follow a locking discipline or overall lack of such. Their exposure depends on non-determinism of the thread scheduler, which can interrupt threads at any time and cause their instructions to be interleaved in unpredictable ways. They can cause unpredictable crashes and data corruption. The worst property of data races is that they are notoriously hard to detect, reproduce, locate, and eliminate, which has earned them the name of Heisenbugs.

The only way to avoid data races is to synchronize access to all mutable data that is shared between threads. There are several ways to achieve this. In Go, you would normally use a channel or a lock. (Lower-lever mechanisms are available in the sync and sync/atomic packages.)
The preferred way to handle concurrent data access in Go is to use a channel to pass the actual data from one goroutine to the next. The motto is: “Don’t communicate by sharing memory; share memory by communicating.”

Write a MPI program for prime number generation.

Q. Write a MPI program for prime number generation. (DEC 18, DEC 17) 10M
Ans- MPI program for prime number generation
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define LIMIT     2500000     /* Increase this to find more primes */
#define FIRST     0           /* Rank of first task */

int isprime(int n) {
int i,squareroot;
if (n>10) {
   squareroot = (int) sqrt(n);
   for (i=3; i<=squareroot; i=i+2)
      if ((n%i)==0)
         return 0;
   return 1;
   }
/* Assume first four primes are counted elsewhere. Forget everything else */
else
   return 0;
}


int main (int argc, char *argv[])
{
int   ntasks,               /* total number of tasks in partitiion */
      rank,                 /* task identifier */
      n,                    /* loop variable */
      pc,                   /* prime counter */
      pcsum,                /* number of primes found by all tasks */
      foundone,             /* most recent prime found */
      maxprime,             /* largest prime found */
      mystart,              /* where to start calculating */
      stride;               /* calculate every nth number */

double start_time,end_time;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&ntasks);
if (((ntasks%2) !=0) || ((LIMIT%ntasks) !=0)) {
   printf("Sorry - this exercise requires an even number of tasks.\n");
   printf("evenly divisible into %d.  Try 4 or 8.\n",LIMIT);
   MPI_Finalize();
   exit(0);
   }

start_time = MPI_Wtime();   /* Initialize start time */
mystart = (rank*2)+1;       /* Find my starting point - must be odd number */
stride = ntasks*2;          /* Determine stride, skipping even numbers */
pc=0;                       /* Initialize prime counter */
foundone = 0;               /* Initialize */

/******************** task with rank 0 does this part ********************/
if (rank == FIRST) {
   printf("Using %d tasks to scan %d numbers\n",ntasks,LIMIT);
   pc = 4;                  /* Assume first four primes are counted here */
   for (n=mystart; n<=LIMIT; n=n+stride) {
      if (isprime(n)) {
         pc++;
         foundone = n;
         /***** Optional: print each prime as it is found
         printf("%d\n",foundone);
         *****/
         }
      }
   MPI_Reduce(&pc,&pcsum,1,MPI_INT,MPI_SUM,FIRST,MPI_COMM_WORLD);
   MPI_Reduce(&foundone,&maxprime,1,MPI_INT,MPI_MAX,FIRST,MPI_COMM_WORLD);
   end_time=MPI_Wtime();
   printf("Done. Largest prime is %d Total primes %d\n",maxprime,pcsum);
   printf("Wallclock time elapsed: %.2lf seconds\n",end_time-start_time);
   }


/******************** all other tasks do this part ***********************/
if (rank > FIRST) {
   for (n=mystart; n<=LIMIT; n=n+stride) {
      if (isprime(n)) {
         pc++;
         foundone = n;
         /***** Optional: print each prime as it is found
         printf("%d\n",foundone);
         *****/
         }
      }
   MPI_Reduce(&pc,&pcsum,1,MPI_INT,MPI_SUM,FIRST,MPI_COMM_WORLD);
   MPI_Reduce(&foundone,&maxprime,1,MPI_INT,MPI_MAX,FIRST,MPI_COMM_WORLD);
   }

MPI_Finalize();

}

Explain in brief Quantum Computers.

Q. Explain in brief Quantum Computers. (MAY 19, DEC 18, DEC 17) 10M
Q. Write a short note on Quantum Computers. (MAY 18) 5M
Ans- A quantum computer is a type of computer that uses quantum mechanics so that it can perform certain kinds of computation more efficiently than a regular computer can. A quantum computer does not use bits to store information. Instead, it uses something called qubits.

What is a qubit? 
Today's computers use bits—a stream of electrical or optical pulses representing 1s or 0s. Everything from your tweets and e-mails to your iTunes songs and YouTube videos are essentially long strings of these binary digits.
Quantum computers, on the other hand, use qubits, which are typically subatomic particles such as electrons or photons. Generating and managing qubits is a scientific and engineering challenge. Some companies, such as IBM, Google, and Rigetti Computing, use superconducting circuits cooled to temperatures colder than deep space. Others, like IonQ, trap individual atoms in electromagnetic fields on a silicon chip in ultra-high-vacuum chambers. In both cases, the goal is to isolate the qubits in a controlled quantum state.
Qubits have some quirky quantum properties that mean a connected group of them can provide way more processing power than the same number of binary bits. One of those properties is known as superposition and another is called entanglement. 

What is superposition? 
Qubits can represent numerous possible combinations of 1 and 0 at the same time. This ability to simultaneously be in multiple states is called superposition. To put qubits into superposition, researchers manipulate them using precision lasers or microwave beams.
Thanks to this counterintuitive phenomenon, a quantum computer with several qubits in superposition can crunch through a vast number of potential outcomes simultaneously. The final result of a calculation emerges only once the qubits are measured, which immediately causes their quantum state to “collapse” to either 1 or 0. 

What is entanglement? 
Researchers can generate pairs of qubits that are “entangled,” which means the two members of a pair exist in a single quantum state. Changing the state of one of the qubits will instantaneously change the state of the other one in a predictable way. This happens even if they are separated by very long distances.
Nobody really knows quite how or why entanglement works. It even baffled Einstein, who famously described it as “spooky action at a distance.” But it’s key to the power of quantum computers. In a conventional computer, doubling the number of bits doubles its processing power. But thanks to entanglement, adding extra qubits to a quantum machine produces an exponential increase in its number-crunching ability.
Quantum computers harness entangled qubits in a kind of quantum daisy chain to work their magic. The machines’ ability to speed up calculations using specially designed quantum algorithms is why there’s so much buzz about their potential.
That’s the good news. The bad news is that quantum machines are way more error-prone than classical computers because of decoherence. 

What is decoherence? 
The interaction of qubits with their environment in ways that cause their quantum behavior to decay and ultimately disappear is called decoherence. Their quantum state is extremely fragile. The slightest vibration or change in temperature—disturbances known as “noise” in quantum-speak—can cause them to tumble out of superposition before their job has been properly done. That’s why researchers do their best to protect qubits from the outside world in those supercooled fridges and vacuum chambers.
But despite their efforts, noise still causes lots of errors to creep into calculations. Smart quantum algorithms can compensate for some of these, and adding more qubits also helps. However, it will likely take thousands of standard qubits to create a single, highly reliable one, known as a “logical” qubit. This will sap a lot of a quantum computer’s computational capacity.
And there’s the rub: so far, researchers haven’t been able to generate more than 128 standard qubits (see our qubit counter here). So we’re still many years away from getting quantum computers that will be broadly useful.
That hasn’t dented pioneers’ hopes of being the first to demonstrate “quantum supremacy.”

What is quantum supremacy?
It’s the point at which a quantum computer can complete a mathematical calculation that is demonstrably beyond the reach of even the most powerful supercomputer.
It’s still unclear exactly how many qubits will be needed to achieve this because researchers keep finding new algorithms to boost the performance of classical machines, and supercomputing hardware keeps getting better. But researchers and companies are working hard to claim the title, running tests against some of the world’s most powerful supercomputers.
There’s plenty of debate in the research world about just how significant achieving this milestone will be. Rather than wait for supremacy to be declared, companies are already starting to experiment with quantum computers made by companies like IBM, Rigetti, and D-Wave, a Canadian firm. Chinese firms like Alibaba are also offering access to quantum machines. Some businesses are buying quantum computers, while others are using ones made available through cloud computing services.

Define MPI. Explain in detail principles of Message Passing Programming.


Q. Define MPI. Explain in detail principles of Message Passing Programming. (MAY 19) 10M
Q. What are the principles of Message Passing Programming. (DEC 18, MAY 17) 10M
Q.What is Message Passing Interface? What are the principles of Message Passing Programming. (DEC 17) 10M
Ans- Message Passing Interface 
Message Passing Interface (MPI) is a standardized and portable message-passing standard designed by a group of researchers from academia and industry to function on a wide variety of parallel computing architectures.

Principles of Message Passing Programming
  • There are two key attributes that characterize the message-passing programming paradigm.


    1. the first is that it assumes a partitioned address space
    2. the second is that it supports only explicit parallelization.


  • There are two immediate implications of a partitioned address space.


    1. First, each data element must belong to one of the partitions of the space; hence, data must be explicitly partitioned and placed. This adds complexity to programming, but encourages locality of access that is critical for achieving high performance on non-UMA architecture, since a processor can access its local data much faster than non-local data on such architectures.
    2. The second implication is that all interactions (read-only or read/write) require cooperation of two processes (the process that has the data and the process that wants to access the data). This requirement for cooperation adds a great deal of complexity for a number of reasons.


  • The process that has the data must participate in the interaction even if it has no logical connection to the events at the requesting process. In certain circumstances, this requirement leads to unnatural programs. In particular, for dynamic and/or unstructured interactions the complexity of the code written for this type of paradigm can be very high for this reason.
  • However, a primary advantage of explicit two-way interactions is that the programmer is fully aware of all the costs of non-local interactions, and is more likely to think about algorithms (and mappings) that minimize interactions.
  • Another major advantage of this type of programming paradigm is that it can be efficiently implemented on a wide variety of architectures.
  • The programmer is responsible for analyzing the underlying serial algorithm/application and identifying ways by which he or she can decompose the computations and extract concurrency.
  • As a result, programming using the message-passing paradigm tends to be hard and intellectually demanding. However, on the other hand, properly written message-passing programs can often achieve very high performance and scale to a very large number of processes.


Explain File Access Models. (December 2017) (10 Marks).

Q. Explain File Access Models. (December 2017) (10 Marks ).
Ans - The specific client's request for accessing a particular file is serviced on the basis of the file accessing model used by the distributed file system.The file accessing model basically depends on 
  1. the unit of data access and 
  2. the method used for accessing remote files.

On the basis of the unit of data access, following file access models might be used in order to access the specific file.
  1.     File-level transfer model
  2.     Block-level transfer model
  3.     Byte-level transfer model
  4.     Record-level transfer model

1.File-level transfer model:
In file-level transfer model, the complete file is moved while a particular operation necessitates the file data to be transmitted all the way through the distributed computing network amongst client and server. This model has better scalability and is efficient.

2.Block-level transfer model:
In block-level transfer model, file data transfers through the network amongst client and a server is accomplished in units of file blocks. In short, the unit of data transfer in block-level transfer model is file blocks. The block-level transfer model might be used in distributed computing environment comprising several diskless workstations.

3.Byte-level transfer model: In byte-level transfer model, file data transfers the network amongst client and a server is accomplished in units of bytes. In short, the unit of data transfer in byte-level transfer model is bytes. The byte-level transfer model offers more flexibility in comparison to the other file transfer models since, it allows retrieval and storage of an arbitrary sequential subrange of a file. The major disadvantage of byte-level transfer model is the trouble in cache management because of the variable-length data for different access requests.

4.Record-level transfer model: The record-level file transfer model might be used in the file models where the file contents are structured in the form of records. In record-level transfer model, file data transfers through the network amongst client and a server is accomplished in units of records. The unit of data transfer in record-level transfer model is record.



Explain Lamport's Distributed Mutual Algorithm. (December 17 ) (10 Marks ) .

Q. Explain Lamport's Distributed Mutual Algorithm. (December 17 ) (10 Marks ) .
Ans - Lamport’s Distributed Mutual Exclusion Algorithm is a permission based algorithm proposed by Lamport as an illustration of his synchronization scheme for distributed systems.
In permission based timestamp is used to order critical section requests and to resolve any conflict between requests.
In Lamport’s Algorithm critical section requests are executed in the increasing order of timestamps i.e a request with smaller timestamp will be given permission to execute critical section first than a request with larger timestamp.
  1. Three type of messages ( REQUEST, REPLY and RELEASE) are used and communication channels are assumed to follow FIFO order.
  2. A site send a REQUEST message to all other site to get their permission to enter critical section.
  3. A site send a REPLY message to requesting site to give its permission to enter the critical section.
  4. A site send a RELEASE message to all other site upon exiting the critical section.
  5. Every site Si, keeps a queue to store critical section requests ordered by their timestamps.
  6. request_queuei denotes the queue of site Si
  7. A timestamp is given to each critical section request using Lamport’s logical clock.
  8. Timestamp is used to determine priority of critical section requests. Smaller timestamp gets high priority over larger timestamp. The execution of critical section request is always in the order of their timestamp.
 
Algorithm
  • To enter Critical section
    • When a site Si wants to enter the critical section, it sends a request message Request(tsi, i) to all other sites and places the request on request_queuei. Here, Tsi denotes the timestamp of Site Si
    • When a site Sj receives the request message REQUEST(tsi, i) from site Si, it returns a timestamped REPLY message to site Si and places the request of site Si on request_queuej
    • .
  • To execute the critical section
    • A site Si can enter the critical section if it has received the message with timestamp larger than (tsi, i) from all other sites and its own request is at the top of request_queuei 
  • To release the critical section
    • When a site Si exits the critical section, it removes its own request from the top of its request queue and sends a timestamped RELEASE message to all other sites
    • When a site Sj receives the timestamped RELEASE message from site Si, it removes the request of Si from its request queue.


Message Complexity
Lamport’s Algorithm requires invocation of 3(N – 1) messages per critical section execution. These 3(N – 1) messages involves
  1. (N – 1) request messages
  2. (N – 1) reply messages
  3. (N – 1) release messages


Performance
  • Synchronization delay is equal to maximum message transmission time
  • It requires 3(N – 1) messages per CS execution.
  • Algorithm can be optimized to 2(N – 1) messages by omitting the REPLY message in some situations. 


Drawbacks of Lamport’s Algorithm
  • Unreliable approach: failure of any one of the processes will halt the progress of entire system.
  • High message complexity: Algorithm requires 3(N-1) messages per critical section invocation.


Explain architectural Model of Distributed System with neat diagram. (December 17 ) (10 Marks)

Q. Explain architectural Model of Distributed System with neat diagram. (December 17) (10 Marks)
Ans - There are four different architectural styles, plus the hybrid architecture, when it comes to distributed systems. The basic idea is to organize logically different components, and distribute those computers over the various machines.
  1. Layered Architecture
  2. Object Based Architecture
  3. Data-centered Architecture
  4. Event Based Architecture
  5. Hybrid Architecture
Layered Architecture
The layered architecture separates layers of components from each other, giving it a much more modular approach. A well known example for this is the OSI model that incorporates a layered architecture when interacting with each of the components. Each interaction is sequential where a layer will contact the adjacent layer and this process continues, until the request is been catered to. But in certain cases, the implementation can be made so that some layers will be skipped, which is called cross-layer coordination. Through cross-layer coordination, one can obtain better results due to performance increase.
The layers on the bottom provide a service to the layers on the top. The request flows from top to bottom, whereas the response is sent from bottom to top. The advantage of using this approach is that, the calls always follow a predefined path, and that each layer can be easily replaced or modified without affecting the entire architecture. The following image is the basic idea of a layered architecture style.


The image given below, represents the basic architecture style of a distributed system.





Object Based Architecture
This architecture style is based on loosely coupled arrangement of objects. This has no specific architecture like layers. Like in layers, this does not have a sequential set of steps that needs to be carried out for a given call. Each of the components are referred to as objects, where each object can interact with other objects through a given connector or interface. These are much more direct where all the different components can interact directly with other components through a direct method call.
  • This architecture style is less structured.
  • component = object
  • connector = RPC or RMI
When decoupling these processes in space, people wanted the components to be anonymous and replaceable. And the synchronization process needed to be asynchronous, which has led to Data Centered Architectures and Event Based Architectures.


Data Centered Architecture
As the title suggests, this architecture is based on a data center, where the primary communication happens via a central data repository. This common repository can be either active or passive. This is more like a producer consumer problem. The producers produce items to a common data store, and the consumers can request data from it. This common repository, could even be a simple database. But the idea is that, the communication between objects happening through this shared common storage. This supports different components (or objects) by providing a persistent storage space for those components (such as a MySQL database). All the information related to the nodes in the system are stored in this persistent storage. In event-based architectures, data is only sent and received by those components who have already subscribed.
Some popular examples are distributed file systems, producer consumer, and web based data services.
The entire communication in this kind of a system happens through events. When an event is generated, it will be sent to the bus system. With this, everyone else will be notified telling that such an event has occurred. So, if anyone is interested, that node can pull the event from the bus and use it. Sometimes these events could be data, or even URLs to resources. So the receiver can access whatever the information is given in the event and process accordingly. processes communicate through the propagation of events.
These events occasionally carry data. An advantage in this architectural style is that, components are loosely coupled. So it is easy to add, remove and modify components in the system. Some examples are, publisher - subscriber system, Enterprise Services Bus (ESB) and akka.io.
One major advantage is that, these heterogeneous components can contact the bus, through any communication protocol. But an ESB or a specific bus, has the capability to handle any type of incoming request and process accordingly.
The event based architecture supports, several communication styles.
  • Publisher-subscriber
  • Broadcast
  • Point-to-Point
The major advantages of this architecture is that the Components are decoupled in space - loosely coupled.