Saturday, November 30, 2019

Quantum – Speeds beyond Imagination
















With all the capacity we have around computing, we still have many unsolved problems, whether it is around food safety, or climate change, or the energy transition. These are big challenges that need more computing.

Quantum Computing is a paradigm shift; it is new in different form of computing that goes exponentially beyond the capabilities of our best and most powerful super computers today. It is grounded in the principles of Quantum Mechanics, which underlies the fundamental theory of nature at the smallest atomic and sub atomic scales. With Quantum Computer, it is Quantum Mechanics that really governs how we store, process and compute the information.

Before we understand Quantum Computing, we must take a look at how Classical Computing worked so far. Classical bits are the basic units of information processing in a classical computer. They process information in ‘bits’ or 1’s and 0’s. Two bits can be in four possible states (00, 01, 10, or 11), but only one of them at any time. This limits the computer to processing one input at a time.

Quantum Computers compute in ‘qubits’ (or quantum bits) which can exist as both 0 and 1 at the same time. In a quantum computer, two qubits can also represent the exact same four states (00, 01, 10, or 11). The difference is, because of superposition, the qubits can represent all four at the same time. That’s a bit like having four regular computers running side-by-side. If more bits are added to a regular computer, it can still only deal with one state at a time. But as qubits are added, the power of quantum computer grows exponentially. We can say that for “n” qubits, simultaneously 2n states can be represented. This is what allows a quantum computers to carry out calculations beyond the realm of modern day computers.

For example, if we have a million social media profiles to look for a particular individual, a classical computer would have to scan each one of these profiles, which would take a million steps. But a quantum computer would be able to do the same task with a thousand steps instead of a million.

Additionally, Quantum Computers rely on naturally occurring quantum – mechanical phenomena known as Superposition & Entanglement. They speed up our ability to perform immense computations.

Superposition One of the most fundamental principles in quantum mechanics, and hence quantum computing, is the principle of superposition. It states that two or more valid quantum states can be added, or superposed, to create a new valid quantum state. Conversely, every quantum state can be represented as two or more distinct quantum states as well. Furthermore, quantum objects can be in more than one quantum state at the same time.

Entanglement Another fundamental part of quantum computing is entanglement. This occurs when pairs of quantum particles are linked so that each particle cannot be observed independently of the other. When a pair or group of particles can only be described by the quantum state for the system, and not by individual quantum states, we say the particles are "entangled".

How it will help us ? The speed and capability of classical supercomputers are limited by energy requirements. Along with these they also need more physical space. Looking for really useful information by processing huge amount of data quickly is a real world problem and one that can be handled faster by quantum computers.

Microsoft Azure Quantum allows software developers to configure quantum computers in Azure cloud to build Quantum apps.

Key Features:
  • Quantum software, including simulators and resources estimation tools, scaled by Azure compute
  • Quantum hardware system options with a variety of different qubit architectures
  • Quantum solutions like pre-built solvers and algorithms that run at industrial scale  

Microsoft Quantum Development Kit (QDK) & Q # Microsoft has attempted to bridge that gap with their new quantum language Q# (Q-sharp). The whole idea is to leverage traditional computing for the control logic and then invoke the quantum code on the quantum processor. The results are sent back to the control logic and used from there.

Microsoft’s programming language for quantum computing, Q#, features a native-type system for qubits, operators, and other abstractions and interoperable with Python Programming Language. The Quantum Development Kit includes the Q# programming language and compiler, the Q# library, a local quantum machine simulator, a quantum computer trace simulator, and a resource estimator. There are also Visual Studio and Visual Studio Code extensions.

What types of problems are ideal challenges for a quantum computer?

Chemistry – Modelling Molecules Current technology doesn’t allow to analyze some of the more complex molecules, There’s a unique approach in quantum computing where, instead of loading the input data, you’re able to encode it into the quantum circuit itself. Modelling molecules are an example of this; the initial positions of the electrons would be the input—also referred to as ‘preparation’—and the final positions of the electron would be the output.

Materials science The ability to develop high-temperature superconductors is a great example. We currently lose around 15% of the power in the energy grid every year due to the resistance in the wires transporting the electricity. Finding a material that can transmit energy without heating up the wires requires modelling properties of materials. This precise focus has a minimal amount of input and a highly focused output

Cryptography Cryptographic problems that use factoring can be solved with a quantum computer because both the input and output are each a single number. Note that the numbers used in the key are huge, so a significant amount of qubits are needed to calculate the result

Machine learning and optimization Maximizing the output in a large factory. Each individual process would need to be optimized on its own, as well as compared against the whole. Here the possible configurations of all the processes that need to be considered are exponentially larger than the size of the input data. With a search space exponentially bigger than the input data, optimization problems are feasible for a quantum computer.

I do feel strongly Quantum is what's going to be all about… FUTURE To build the quantum work force of the future, Microsoft is collaborating with the universities for Quantum computing course for a full semester. This step empowers students to create futuristic innovations.

Friday, August 16, 2019

Limitless Data Estate

As we know that Data is the basic element for computing, this blog focusses on the intensity of data.

 

When we talk about the Fourth Industrial Revolution just like the first three with steam, electricity and Information Technology, we had a pretty broad impact on the way we live, the way we work, the way we entertain ourselves, the way we communicate, and now this Fourth Industrial Revolution will bring even a broader, deeper impact on all aspects of our lives. It is interesting to look back and say, what is it that causes this transformative impact or what are the confluences or circumstances that bring this transformation about.

And it is definitely technology that connects everything. All these connected entities create lots and lots of data.

World is changing, Data is becoming key input to businesses. The amount of Digital Data in the universe is growing at an exponential rate. The Rise of Real-Time Data - Prepare for Exponential Growth.

 

Data -> Data Estate

                               

Data

Information that has been translated into a form that is efficient for movement or processing

Data is information converted into Binary Digital Form

Computer data is processed by the CPU and is stored in files and folders and the computer’s hard disk

 

Data Estate is simply the infrastructure to help companies systematically manage all of their corporate data.

Organizations can store, manage and leverage their analytics data, business applications, social data, customer relationship systems, functional business and departmental data, Internet of things and more.

You need amazing capacity from an operational store perspective.

 

The Exponential Growth of Data

Growth of data is exceeding the capacity of traditional computing.

Human and machine generated data is experiencing an overall 10X faster growth rate than traditional business data, and machine data is increasing even more rapidly at 50X the growth rate.

90% of the data that we have today was created in the last two years.

Petabytes of real time data is moved for analytical pipeline.

Latest range to measure the data - Zettabytes is now covering a space of 21 orders of magnitude.

 

Key Trends Causing Data Explosion

In the early days of the digital revolution, data was produced mainly from PC’s. But moving ahead the new growth will be coming from varied sources.

Today, more than 5 Billion consumers interact with data every day. Many of these interactions are because of billions of IoT devices connected across the globe.

Internet We conduct more than half of our web searches from a mobile phone now​.

Social Media certainly fuels data creation via LinkedIn, Youtube, Twitter, Instagram, Facebook, etc.,

Communication Sending texts, e-mails and calls via skype​ .

Digital Photos Now that our smart phones are exemplary cameras as well, everyone is a photog and the trillions of photos stored is the proof.

Services Request to weather channels, cab drivers, Wikipedia are some of the services.​The Internet of Things, connected smart devices that interact with each other and us while collecting all kinds of data, is exploding.

Social benefits like real time fraud detection, efficient traffic flow management between smart vehicles and prioritized traffic protocols for emergency response vehicles and facial recognition for improved security at sporting events or transportation hubs.

Data Growth Challenges 

The exploding volume and speed of data growth has introduced several challenges

System management and growing cluster complexity.

Data center power, cooling and floor space limitations.

Storage, data movement and management complexity.

Lack of support for heterogeneous environment and accelerators.

Significant shortage of skills to integrate and manage the super data ecosystem.

Impact of data growth on business continuity and few other challenges are like data security, disaster recovery, and higher costs for the increased data size​.

Business must be equipped to manage Data Growth

Business leaders can prosper by embracing new and unique business opportunities powered by this wealth of data and the insight it provides. It is important to understand how to identify and leverage the specific data that will deliver the most value for business. 

Some of the focus areas would be:

Manage growth and operational cost of infrastructure.

Provide elasticity and flexible capacity.

Ensure performance for diverse workloads.

Rapidly deploy and scale infrastructure.

 

Hence, we can say data as the "New Electricity". Business must make a fundamental shift for the forward momentum.

 

 

 

 

 

 

 

 

 

 

 

Saturday, July 27, 2019

Getting your Hands Dirty with Python

This is an endeavor from my side to demonstrate how easy to grasp language Python is. Targeted for developers with some knowledge of programming.

Real Time Use Case - Food Order & Billing
Check booking data for availability of tables in a restaurant, takes the customer order and generates the bill to the customer and finally gets the rating of the service from the customer


Key Features covered in the program
§  Classes / Objects
§  Docstrings
§  File Handling
§  Error and Exception Handling
§  Data Structures – Dictionaries
§  lambda Function
§  String Manipulation

Imports from Standard Library



Classes & Objects



Docstrings



Read File



Exception Handling



Dictionaries



lambda Function


String Manipulation



Source Code
# Imports from standard library
import datetime
import time
import sys

print("WELCOME TO QUICKCONNECT HUB")

class Restaurant:

    order = {}
    total = 0.0
    tax = 0.04

    def __init__(self):
        """ Read / Display restaurant table booking information stored in a file """

        print("\n" "Displaying Table Booking Data ...." "\n")
        time.sleep(2)
               
        try:

           with open("table.txt","r") as tabfile:

               for line in tabfile:
                  print(line)
               time.sleep(2)

               print("\n" "Please occupy empty table")
               time.sleep(2)

        except FileNotFoundError:
           print("The data file is missing")
           sys.exit()

    def menuDisplay(self):
        """ Display the items in the menu for selection """
       
        print("\n" "Select the items from menu")
        print("\n" "********** MENU CARD **********")
        print("ITEM \t\t PRICE")

        self.menu = {"Burger":120, "Pizza":200, "Hotdog":150,
                "Parata":50, "Donut":80, "Nugget":50,
                "Paneer":120, "Pakora":80, "Coffee":25}

        for k,v in self.menu.items():
              print(k,":", "\t",  "Rs",v)

    def orderConfirm(self):
        """ Take the order and display the items for confirmation """

        print("\n" "Please let us know the order")
        time.sleep(2)

        for i in range(len(self.menu)):
           
            self.select_item = input("\n" "Select an Item: ")
            if self.select_item not in self.menu:
                print("Selected item is not available in the menu")
                self.select_item = input("Please re-enter an item: ")
               
            try:
                self.quantity = int(input("Enter the Quantity: "))
                self.order[self.select_item] = self.quantity

            except Exception:
                print("Quantity to be entered as Numeric")
                self.quantity = int(input("Please re-enter the Quantity:"))
                self.order[self.select_item] = self.quantity

            self.item_flag = input("\n" "Do you wish to continue?(Y/N)")
            if self.item_flag == "N":
                break
           
        print("\n" "Please confirm the order given:")
        print(self.order)
        print("\n" "THANK YOU! Please wait while we get your items")
        time.sleep(2)
        print("\n" "Here you go, Please have your order")
        time.sleep(2)

    def billGeneration(self):
        """ Generates bill for the ordered items """
       
        print("\n" "Generating Bill....")
        time.sleep(2)
        print("------------------------------------------")
        current_time = datetime.datetime.now()
        print("Invoice Generated On:", current_time.strftime("%Y-%m-%d %H:%M:%S"))
        print("------------------------------------------")

        for key in self.menu.keys():

           if key in self.order:
              print(key, "\t", "Qty", self.order[key], "\t", "Rs", self.menu[key] * self.order[key])
              self.cost_item = self.menu[key] * self.order[key]
              self.total += self.cost_item

        self.taxamt = lambda amt, tax : amt * tax
        print("------------------------------------------")
        print("TOTAL:", "\t", "\t", "Rs", self.total)
        print("GST 4%", "\t", "\t", "Rs", self.taxamt(self.total, self.tax))
        print("------------------------------------------")
        self.total += self.taxamt(self.total, self.tax)
        print("GRAND TOTAL:", "\t", "Rs", self.total)
        print("------------------------------------------")
       

    def rateService(self):
        """ Display customer ratings of the services provided """
       
        print("\n" "Dear customer, Please Rate our Service * * * * * ")
        rating = input("\n" "Please key-in the Stars : ")
        rating = rating.replace(" ","")
       
        if rating == "*":
            print("Service Rated is:", rating, " TERRIBLE")
        elif rating == "**":
            print("Service Rated is:", rating, " BAD")
        elif rating == "***":
            print("Service Rated is:", rating, " OK")
        elif rating == "****":
            print("Service Rated is:", rating, " GOOD")
        elif rating == "*****":
            print("Service Rated is:", rating, " EXCELLENT")

       
        print("\n" "THANK YOU! PLEASE VISIT AGAIN....")
       
       
#Main Program 
res = Restaurant()

res.menuDisplay()
res.orderConfirm()
res.billGeneration()
res.rateService()

Table Data File



Output




I really hope the above walk-through help in getting view of python programming.

Thursday, July 25, 2019

Cloud Transformation - Run Better

Whilst we are experiencing a profound transformation in the computational model and role of IT, I thought it would be a good idea to give a walk-through of basic concepts of Cloud Computing and various end to end service cloud offerings in the digital world.

 

Pre-Cloud Era - On-Premise On-Prem Software or App is installed and runs on computers on the premises of the person or organization rather than at a remote facility based on client-server architecture. The cost of building software was so high right from procurement of hardware, software to environment setup along with incurring the delays of service / product delivery to the market.

 

Cloud Computing often referred to as "the cloud", is the delivery of on-demand computing services everything from application to data centers over the internet on a subscription-based service where network storage space and computer resources are provisioned. Cloud provider can both own and house the hardware and software necessary to run business applications. The cloud makes it possible to access the information from anywhere at any time.

 

Why the name Cloud, inspired by the cloud symbol that's been in use to represent internet in the flow charts and network diagrams.

 

Comparison - On-Premise Vs Cloud

On-Premise

Cloud

Time consuming, requires additional hardware / software purchases to set up a new environment

Relatively faster to implement as it leverages a ready-made platform by the vendor

Responsible for maintaining the application, ensuring high availability and disaster recovery

Minimal IT dependence - Cloud Provider takes care of infrastructure risks and disaster recovery

Ownership on the responsibility for upgrades, which are often expensive and time-consuming

Iterative with limited involvement - Informed about impending system upgrades

Long term planning and commitment of resources for scaling

Easily scalable with little effort / time - Solutions can be scaled down without wasting resources

Additional effort / time and software for the required security

Highly secure with expert supervision of network and server security

High entry and operations costs

Low entry cost & flexible pricing

 

Types of Cloud Computing Services The three primary types of Cloud Computing Services are Infrastructure, Platform and Software. These services are made possible by virtualization and high speed networks.

 

Infrastructure as a Service (IaaS) deals primarily with providing access to infrastructure – storage, networking, servers, etc., in the form of virtualization. Only pay for the data transfer, storage, processing power and RAM that is required. IaaS is beneficial to businesses of all sizes, as it allows complete control over the infrastructure, and operates on a pay-as-per-use model.

 

Web hosting, online portals with heavy traffic where on-prem data center can be extended for temporary workloads. Network Architects are primarily involved in this service model to facilitate virtual machines, storage, firewalls, load balancers, virtual local area networks.

 

Platform as a Service (PaaS) provides a platform allowing customers to develop, run and manage applications without the complexity of building and maintaining the infrastructure. Additionally it also provisions middleware, development & deployment tools, Business Intelligence / Analytics services, Database Management System and more.

 

PaaS is primarily used by Application Developers who are building unique software / application.

Example would be web application development where developer to focus on the creative side of app development, as opposed to menial tasks such as managing software updates or security patches.

 

Software as a Service (SaaS) is software licensing and delivery model in which software / applications are hosted by a third party / cloud provider and are made accessible to customer over the internet via a subscription. Physical copy of software is not required to be installed on individual devices.

 

Primary focus of this service would be for End Users. Users connect to the application over the internet via a web browser. SaaS platforms are ideal when an application can run smoothly and reliably with minimal input.

Web-based email / Microsoft Office 365 and Google Apps (Documents) are some of the real-time examples.

 

Potential Risks & Dependencies in Cloud while each of the above models give users choice, flexibility and options that on-premise hosting cannot provide, there certain cons to be aware of :

Vulnerability Attacks - Security Breach for confidential data

Network Connectivity - Reliable and consistent internet service with a good connection speed and bandwidth

Customization & Integration - Enhancement to Legacy systems is required before migrating to Cloud as to seamlessly integrate with cloud provisioned infrastructure and services.

 

Why Migrate to Cloud?

Control growing operational cost

Business is dynamic in nature resulting in dynamic capacity requirements

Attain optimal return on investment

Leverage best of breed processes and continuous functionality upgrades

Go To Market lead time is reducing business potential

On demand model based on environment scaling need

Stay current on application releases without recurring upgrade cost

 

Leading Cloud Computing Service Providers

Microsoft Azure

Amazon Web Services

Google Cloud Platform

VMware

IBM Cloud

Salesforce

Oracle Cloud

Red Hat

Rackspace

Cisco

 

Before you step foot into Cloud Computing Industry, you need to pick up below skills to Run Better

Operating Systems Windows & Linux

Networking VLAN, IP Addressing, VNET, Subnet, DNS Systems

Database SQL, MySQL, MongoDB

Programming Skills Python, Perl, Java, .NET, Powershell

Virtualisation VMware, EC2, Lambda

Basic Concepts of Servers, Cyber Security & DevOps