/
Where has all my stuff gone ?   Abstraction  in the physical world Where has all my stuff gone ?   Abstraction  in the physical world

Where has all my stuff gone ? Abstraction in the physical world - PowerPoint Presentation

olivia-moreira
olivia-moreira . @olivia-moreira
Follow
343 views
Uploaded On 2019-11-03

Where has all my stuff gone ? Abstraction in the physical world - PPT Presentation

Where has all my stuff gone Abstraction in the physical world Yaakov J Stein CTO RAD There are 2 techniques frequently used to solve hard problems and which have been raised to an art in computer science ID: 762665

physical abstraction communications software abstraction physical software communications concept virtualization abstracted cpus concretization computer sock hardware information replaced money

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Where has all my stuff gone ? Abstract..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Where has all my stuff gone? Abstraction in the physical world Yaakov (J) Stein CTO, RAD

There are 2 techniques frequently used to solve hard problems and which have been raised to an art in computer science Modularization (factorization, top-down design)break problem down into simpler parts, recurseAbstraction (generalization, functionality re-use, data hiding) solve simpler special case, generalize, iterateAlthough modularization has traditionally been considered more important in programming it has turned out that abstraction is strongerIn this talk we will investigate why Abstractions

In everyday life, and in most sciences, abstraction means generalization of a problem by focusing on certain aspects while disregarding othersFor examplein math characteristics real numbers can be successively abstracted to fields, rings, groups, setsin physics complex systems are replaced by modelse.g., atoms in ideal gases by ping-pong balls in AI neurons in the brain are replaced by nonlinear integratorsin everyday life we complain when things become too abstract What does everyone mean by abstraction ?

In Computer Science an abstraction is technically a representation that reveals semantics needed at a given level while hiding implementation detailsAbstractions allow a programmer to focus on necessary concepts without getting bogged down in unnecessary detailsProgramming is fast because programmers exploit abstractionsFor example:It is very slow to code directly in assembly language (few abstractions)It is a bit faster to coding in a low-level language (variables, data structures)It is much faster coding in high-level imperative or declarative language It is fastest coding in a domain-specific language (only the needed abstractions) What do we mean by abstraction ?

We often hear about standing on the shoulders of giants When someone solves a hard problem it is embodied in a routine/library that others may useeven more useful – widely distributed as Open Sourceeven more useful – becomes an object that can be inherited/modified/extendedeven more useful – the next generation of programming languages contain the construct as an atomic operation The last step is the most effective although the original solution effectively disappears Why is abstraction so important ?

Once, extracting some information from a web packet required copying packet from NIC bufferchecking IP and TCP headers (calculating checksums, TTLs, etc.) extracting content segmenthttp protocol processingreconstructing textsearching for the desired field extracting the dataThe socket interface greatly simplified thisWeb programming environments went even furtherModern languages have atomic operations to scrape web sites Example – abstractions in networking price = extract( url , ' price ' ) ; sock = socket(AF_INET , SOCK_STREAM , 0); connect(sock , server , sizeof (server)) ; recv (sock, server_reply , size, 0) ; close(sock);

But this is not a new development!Throughout history physical entities have been successively replaced by more and more abstract ones At the end, nothing tangible is left, but everything still worksParadoxically, everything even works better (otherwise, a different abstraction would have been used)Abstraction in the physical world

Writing www.MyBooks.com

Writing is a mechanism for preserving information over timeAll the other aspects, such as whether viachisel on stone feather quill on parchment printing press on paperare low-level hardware details that can be refactoredStoring information in the cloud abstracts the concept of preserving textual information and has the additional useful properties of ubiquitous access (i.e., it works better)What concept was abstracted?

Money, money, money

The story starts with abandoning the inconvenient barter systemGold was always only a proxy for real goods and was only worth anything because people believed in itCoins, paper money, lines in bank accounts are only worth anything because people believe in themThe fundamental concept being abstracted is belief or trustIf people trust gold/coins/paper, they will have value if they lose trust in them, they will crash BlockChain-based digital currencies maximally abstract the concept of trust and may be more convenient (i.e., it works better) What concept was abstracted?

Music www.MyPlayList.com

Radio and telephone

We showed that various physical boxes have gone away while paradoxically their function has improvedBut we still are left with two physical entities: communications devices (routers, transceivers, antennas, etc.) computation devices (servers, tablets, smartphones)Two new technologies (SDN and NFV) cause these last two vestiges of the physical world tofirst mergeand then disappear completelyBut not everything disappears!

Once there was no overlap between communications (telephone, radio, TV) and computation (computers)Actually communications devices always ran complex algorithms but these are hidden from the userMost home computers are not used for computation at all rather for communications (email, chat, VoIP)Smart cellular telephones have become computers and are used more for running apps than for telephone calls We now have the single concept of computication Computation and communications have merged

But there is a problem with merging communications and computationCommunications is based on protocols and standardizing new protocols is a slow processComputation is based on algorithms and coding new algorithms is a fast processThis leads to a fundamental disconnect between software and networking development timescalesIs there any way to develop communications at the speed of software? The speed of software

Two new approaches aim to resolve the disconnectSoftware Defined N etworking replaces protocols with algorithms Network Functions Virtualization replaces hardware with softwareSo, communications has now completely merged into computationBut they haven’t disappeared - we still have physical CPUs !SDN and NFV

Digression : Concretization vs. Virtualization PHYSICS LOGIC dedicated hardware ASIC FPGA special purpose processors general purpose software firmware CONCRETIZATION Concretization means moving a task to the left (although frequently reserved for the extreme case of HW → SW) VIRTUALIZATION Virtualization means moving a task to the right

Concretization (moving from software to hardware) is what we have been doing for years, and is easy to understandJustifications for concretization include : cost savings for mass produced products miniaturization/packaging constraints need for high processing rates energy savings / power limitation / heat dissipationBut why would one want to perform virtualization ? Why take power/space optimized, efficient, inexpensive function and replace it with a large, energy hungry, inefficient, costly one? Why concretization?

In the last few years there has been a major trend towards virtualizationVirtualization here means the creation of a Virtual M achine (VM) that acts like an independent physical computer A VM is software that emulates hardware (e.g., an x86 CPU) over which one can run software as if it is running on a physical computerSo, a VM looks like a computer, but is really just softwareVirtualization

Justification for such virtualization is initially hard to graspplatform independence which is the reason Java, Android and .NET use VMscapability of running multiple CPU instances on one host CPU which is the reason VMs are used in data centerscapability of running virtual CPUs of different flavors / OSes vastly simplifying managementnatural statistical multiplexing of resources lowering cost when not all virtual CPUs maxed outflexible spin-up / tear-down / migration of virtual CPUs Why virtualization?

So, even CPUs have become software emulations and no longer exist in the physical worldOf course, the host CPUs still exist in some sense, but ... they are getting smaller and smaller (Moore’s law)they can be far away from the userthey shift around from place to place (follow the sun/moon)they are buried underground (or under the ocean) you can’t see them or even know where they are!in the near future they may be implanted into our brains or built into walls or furnitureOf course we still have humans programming the computers but they too are being replaced by software! The final disappearing act

While computer science has raised abstraction to an art form abstraction has been exploited throughout history Successive applications of abstraction can make physical entities eventually completely disappear although paradoxically the abstracted concept is unaffected and its function may actually improveThese slides having been sufficiently abstracted can now disappearThe End

Yaakov (J) Stein