Research about hardware and software




















If on the way we are not able to answer any question, or in the meantime we find that the idea is not worth further development, then it's more than okay. We will save time and therefore money. You simply can devote energy to another idea. Perhaps the research will give us alternative options, and we can now make a pivot. If the idea seems right and worth developing, we should still think about business constraints.

At this stage, we already have to plan what we want to test further whether it is hardware or software. Now we can proceed to the second stage of the process, Phase 2. Proof of Concept. We start with an idea, but the execution is the most important thing.

At least until we test, we won't know if the concept is worth anything. As originators, we often succumb to the temptation to trust our idea and implement it too quickly. An engineer who prefers to build and test may have the same approach. However, it is not worth skipping the research phase , because it can answer many important questions for further development. It's also definitely cheaper than prototyping. What to keep in mind during Phase 1. Thanks for reading so far and if you have any feedback or question, I will gladly answer them: bartek untitledkingdom.

Here you can find the first one:. The update rate is defined to be the rate at which display changes are made and shown on the screen. In keeping with the original motion picture technology, the ideal update rate is 20 frames new pictures per second or higher.

The minimum acceptable rate for VE is lower, reflecting the trade-offs between cost and such tolerances. With regard to computer hardware, there are several senses of frame rate: they are roughly classified as graphical, computational, and data access.

Graphical frame rates are critical in order to sustain the illusion of presence. Note that these frame rates may be independent: the graphical scene may change without a new computation and data access due to the motion of the user's point of view. Experience has shown that, whereas the graphical frame rate should be as high as possible, frame rates of lower than 10 frames per second severely degrade the illusion of presence.

If the graphics being displayed relies on computation or data access, then computation and data access frame rates of 8 to 10 frames per second are necessary to sustain the visual illusion that the user is watching the time evolution of the VE.

Fast response times are required if the application allows interactive control. It is well known Sheridan and Ferrell, that long response times also called lag or pure delay severely degrade user performance. These delays arise in the computer system from such factors as data access time, computation time, and rendering time, as well as from delays in processing data from the input devices.

As in the case of frame rates, the sources of delay are classified into data access, computation, and graphical categories.

Although delays are clearly related to frame rates, they are not the same: a system may have a high frame rate, but the image being displayed or the computational result being presented may be several frames old. Research has shown that delays of longer than a few milliseconds can measurably impact user performance, whereas delays of longer than a tenth of a second can have a severe impact. The frame rate and delay required to create a measurable impact will in general depend on the nature of the environment.

Relatively static environments with slowly moving objects are usable with frame rates as low as 8 to 10 per s and delays of up to 0. In all cases, however, if the frame rate falls below 8 frames per s, the sense of an animated three-dimensional environment begins to fail, and if delays become greater than 0. We summarize these results to the following constraints on the performance of a VE system:.

Both the graphics animation and the reaction of the environment to user actions require extensive data management, computation, graphics, and network resources. All operations that take place to support the environment must operate within the above time constraints. Although one can imagine a system that would have the graphics, computation, and communications capability to handle all environments, such a system is beyond current technology.

For a long time to come, the technology necessary. Real-world simulation applications will be highly bound by the graphics and network protocols and by consistency issues; information visualization and scientific visualization applications will be bound by the computational performance and will involve issues of massive data management Bryson and Levit, ; Ellis et al.

Some applications, such as architectural visualization, will require photorealistic rendering; others, such as information display, will not. Thus the particular hardware and software required for VE implementation will depend on the application domain targeted.

There are some commonalities of hardware and software requirements, and it is those commonalities on which we focus in our examination of the state of the art of computer hardware and software for the construction of real-time, three-dimensional virtual environments. The ubiquity of computer graphics workstations capable of real-time, three-dimensional display at high frame rates is probably the key development behind the current push for VEs today.

We have had flight simulators with significant graphics capability for years, but they have been expensive and not widely available. Even worse, they have not been readily programmable.

Flight simulators are generally constructed with a specific purpose in mind, such as providing training for a particular military plane. Such simulators are microcoded and programmed in assembly language to reduce the total number of graphics and central processing unit cycles required.

Systems programmed in this manner are difficult to change and maintain. Hardware upgrades for such systems are usually major undertakings with a small customer base. An even larger problem is that the software and hardware developed for such systems are generally proprietary, thus limiting the availability of the technology.

The graphics workstation in the last 5 years has begun to supplant the special-purpose hardware of the flight simulator, and it has provided an entry pathway to the large numbers of people interested in developing three-dimensional VEs. The following section is a survey of computer graphics workstations and graphics hardware that are part of the VE development effort. Graphics performance is difficult to measure because of the widely varying complexity of visual scenes and the different hardware and software approaches to computing and displaying visual imagery.

The most. Polygons are the most common building blocks for creating a graphic image. It has been said that visual reality is 80 million polygons per picture Catmull et al. There is no current graphics hardware that provides this, so we must make approximations at the moment.

This means living with less detailed virtual worlds, perhaps via judicious use of hierarchical data structures see the software section below or off-loading some of the graphics requirements by utilizing available CPU resources instead.

For the foreseeable future, multiple processor workstations will be playing a role in off-loading graphics processing. Moreover, the world modeling components, the communications components, and the other software components for creating virtual worlds also require significant CPU capacity. While we focus on graphics initially, it is important to note that it is the way world modeling effects picture change that is of ultimate importance.

This section describes the high-level computer architecture issues that determine the applicability of a graphics system to VE rendering. Two assumptions are made about the systems included in our discussion. First, they use a z-buffer or depth buffer , for hidden surface elimination.

A z-buffer stores the depth—or distance from the eye point—of the closest surface ''seen" at that pixel. When a new surface is scan converted, the depth at each pixel is computed. If the new depth at a given pixel is closer to the eye point than the depth currently stored in the z-buffer at that pixel, then the new depth and intensity information are written into both the z-buffer and the frame buffer. Otherwise, the new information is discarded and the next pixel is examined.

In this way, nearer objects always overwrite more distant objects, and when every object has been scan converted, all surfaces have been correctly ordered in depth. The second assumption for these graphic systems is that they use an application-programmable, general-purpose processor to cull the database.

The result is to provide the rendering hardware with only the graphics primitives that are within the viewing volume a perspective pyramid or parallel piped for perspective and parallel projections respectively. Both of these assumptions are valid for commercial graphics workstations and for the systems that have been designed by researchers at the University of North Carolina at Chapel Hill.

Per-primitive operations are those that are performed on the points, lines, and triangles that are presented to the rendering system. These include transformation of vertices from object coordinates to world, eye, view volume, and eventually to window coordinates, lighting calculations at each vertex, and clipping to the visible viewing volume.

Rasterization is the process of converting the window-coordinate primitives to fragments corresponding to the pixels held in the frame buffer. The frame buffer is a dedicated block of memory that holds intensity and other information for every pixel on the display surface. The frame buffer is scanned repeatedly by the display hardware to generate visual imagery.

Each of the fragments includes x and y window coordinates, a color, and a depth for use with the z-buffer for hidden surface elimination. Finally, per-fragment operations include comparing the fragment's depth value to the value stored in the z-buffer and, if the comparison is successful, replacing the color and depth values in the frame buffer with the fragment's values.

The performance demanded of such a system can be substantial: 1 million triangles per second or hundreds of millions of fragments per second.

The calculations involved in performing this work easily require billions of operations per second. Since none of today's fastest general purpose processors can satisfy these demands, all modern high-performance graphics systems are run on parallel architectures. Figure is a general representation of a parallel architecture, in which the rendering operation of Figure is simply replicated. Whereas such an architecture is attractively simple to implement, it fails to solve the rendering problem, because primitives in object coordinates cannot be easily separated into groups corresponding to different subregions of the frame buffer.

There is in general a many-to-many mapping between the primitives in object coordinates and the partitions of the frame buffer. To allow for this many-to-many mapping, disjoint parallel rendering pipes must be combined at a minimum of one point along their paths, and this point must come after the per-primitive operations are completed.

The point or crossbar can be located prior to the rasterization the primitive crossbar , between rasterization and per-fragment the fragment. A detailed discussion of these architectures is provided in the technical appendix to this chapter.

There are four major graphics systems that represent different architectures based on crossbar location. Ordered rendering has been presented to help clarify a significant distinction in graphics architectures; however, it is not the only significant factor for VE rendering. Other primary issues for VE rendering are image quality, performance, and latency. Freedom and Pixel Planes 5 are less suitable, though still useful.

Many important applications of VE require extensive computational and data management capabilities. The computations and data in the application primarily support the tasks taking place in the application.

For example, in simulation, the computations may support the physical behavior of objects in the VE, while in a visualization application the computations may support the extraction of interesting features from a complex precomputed dataset. Such computations may require on the order of millions of floating point operations.

Simulations currently demand. Visualization applications, in contrast, often demand a priori unpredictable access to gigabytes of data Bryson and Gerald-Yamasaki, Other types of applications can have similar demands.

As computer power increases, more ambitious computational demands will be made. For example, an application may someday compute a fluid flow solution in real time to high accuracy. Such computations can require trillions of floating point operations. In this section, we consider the implications of the VE performance constraints on the computation and data management requirements of a VE system. An example of an application that is both computationally intensive and works with large numbers of data is the virtual wind tunnel Bryson and Gerald-Yamasaki, A modest modern problem in the virtual wind tunnel is the visualization of a precomputed dataset that gives five values one for energy, one for density, and three for the velocity vector at 3 million points at a time, for times.

This dataset is a total of 5. If the virtual wind tunnel is to allow the user to interactively control the time-varying visualization of this dataset, each time step must be loaded, and the visualizations must be computed. Assuming that 10 time steps must be loaded per second, a data bandwidth of Mbytes per second is required. The computations involved depend on the visualization technique.

For example, the velocity vector field can be visualized by releasing simulated particles into the flow, which implies a computation requiring about floating point operations per particle per time step. A typical visualization requires thousands of such particles and hundreds of thousands of floating point operations. The computation problem expands further as such visualizations are combined with other computationally intensive visualization techniques, such as the display of isosurfaces.

It is important to stress that this example is only of modest size, with the size and complexity of datasets doubling every year or so. It is quite difficult to simultaneously meet the VE performance constraints and the data management requirements in the above example. There are two aspects to the data management problem: 1 the time required to find the data in a mass storage device seek time , which results in delays, and 2 the time required to read the data bandwidth.

The seek time can range from minutes in the case of data stored on tape through a few hundred thousandths of a second in the case of data stored on disk, to essentially nothing for data stored in primary memory. Disk bandwidth is not expected to improve significantly over the next few years.

Support is needed to meet the requirements of VE applications for real-time random access to as much as several gigabytes Bryson and Gerald-Yamasaki, Whereas for some visualization techniques, only a small number of data will be addressed at a time, a very large number of such accesses may be required for data that are scattered over the file on disk. Thus the seek time of the disk head becomes an important issue. For other visualization techniques such as isosurfaces or volume rendering , many tens of megabytes of data may be needed for a single computation.

For these types of applications, physical memory is the only viable storage medium for data used in the environment. Workstations are currently being released with as much as 16 Gbytes of memory, but the costs of such large amounts of memory are currently prohibitive. Furthermore, as computational science grows through the increase in supercomputer power, datasets will dramatically increase in size.

Another source of large datasets will be the Earth Observing Satellite, which will produce datasets in the terabyte range. This large number of data mandates very fast massive storage devices as a necessary technology for the application of VEs to these problems. One strategy of meeting the data management requirements is to observe that, typically, only a small fraction of the data is actually used in an application. In the above particle injection example, only 16 accesses are required with each access loading a few tens of bytes per particle per time step.

These accesses are scattered across the dataset in unpredictable ways. The bandwidth requirements of this example are trivial if only the data actually used are loaded, but the seek time requirements are a problem: 20, particles would require , seeks per time step or 3. This is two orders of magnitude beyond the seek time capabilities of current disk systems. Another way to address the data size problem is to develop data compression algorithms.

The data will be decompressed as they are used, trading off reduced data size for greater computational demands.

Different application domains will make different demands of compression algorithms: image data allow "lossy" compression, in which the decompressed data will be of a slightly lower fidelity than the original; scientific.

The development of appropriate data compression techniques for many application domains is an open area of research. Another strategy is to put as much of the dataset as possible in physical memory. This minimizes the seek time but restricts the number of data that may be investigated. This restriction will be relieved as workstation memories increase see Figure Datasets, however, are expected to grow radically as the available computational power increases.

Computational requirements can be similarly difficult to meet. The above example of injecting 20, particles into a flow requires 4 million floating point operations, implying a computational performance of 40 million floating point operations per second or 40 Mflops just to compute the particle visualization.

Such an application will often use several such visualizations simultaneously. As more computational power becomes available, we may wish to include partial differential equation solvers, increasing the computational requirements by several orders of magnitude.

There are many ways in which supercomputer systems have attained very high computational speeds, but these methods typically work only for special computations.

For example, Cray supercomputers rely on a vectorized architecture, which is very fast for array-type operations but is. Another example is the massively parallel system, which distributes memory and computation among many processors. Massively parallel systems are very fast for some applications, but are slow for computations that are not parallelizable or require large amounts of data movement.

In a VE system, many kinds of computations may be required, implying that a unique computational architecture typically will be unsuitable. To maximize versatility, computations in VE systems should be based on a few parallel high-power scalar processors with large shared memory.

As Figure shows, workstation computational power is increasing dramatically. It is expected that in workstations will be available that will match the computational power of the supercomputers of The run-time software architecture of the VE is an area of serious concern. There are two run-time models that are currently common in computer graphics: the simulation loop model, in which all operations in the visualization environment including interaction, computation, data management, and graphics are performed in a repeated single loop; and the event-driven model, in which operations occur in response to various events usually generated by the user.

Neither model is attractive for large VEs. The time required for a single loop in the simulation loop model may, due to the combination of data management, computation, and graphics, exceed the VE performance constraints. This is a particularly severe problem if these various operations are performed in sequence, drawing each frame only after the entire computation has been completed. This can lead to very low frame rates both with respect to display and interaction, which is unacceptable in a VE system.

For multiprocessing systems, one answer is to put the computation and data management in one process while the graphics is in another, asynchronously running process. Then the graphics can be performed as fast as possible even though the computations may take much longer times. For multiprocessor systems, the computation can be parallelized as well, in which all computation takes place on as many processors as possible to reduce the overall time required for a computation.

This parallel implementation of the computation is still a single loop. The time needed for execution will be determined by the slowest computation in that loop. The event-driven model is unsuited for VE, as there are many events that may be generated at any one time including repeated "compute the environment" events that amount to an effective simulation loop , and the time ordering and priority of these events are critical. For example, several user interaction events may occur simultaneously and the priority and meaning of these events will depend on their relationship to one another and their environment.

Put more succinctly, the meaning of the. This operation will be difficult to do on the basis of an event queue. An alternative run-time model that is gaining popularity is the concurrent model, in which different operations in the environment are running simultaneously with one another, preferably on several processors.

The example of the simulation loop broken into the two asynchronously running graphics and computation processes discussed above is a simple example of concurrency. In full concurrency, one may assign a process to each element of the VE. These processes should be implemented as threads or lightweight processes, which are regularly preempted to prevent a single process from taking too much time.

Each process would be a small simulation loop, which repeatedly computes and draws its object. The concurrent model has the advantage that slow processes will not block down faster processes.

It has the disadvantage that processes requiring very different time scales fast streamlines versus slow isosurfaces in a visualization application, for example will not always be in sync. This is a serious problem for time-dependent environments, in which a concurrent implementation may lead to the simultaneous display of, for example, the streamline from one time and the isosurface from another.

One can constrain the various processes to stay in sync, but the result would be an environment in which all processes are executed in a time determined by the slowest process in effect, a parallelized simulation loop.

The choice of run-time architecture will be closely tied to and constrained by the operating system of the computer platform running the VE. In order to allow the parallelization of graphics and computation described above, the operating system should support many lightweight, shared-memory processes, thus minimizing the time required for context switching and interprocess communication. The operating system should be capable of ensuring that high-priority processes such as the processes handling user tracking can be serviced at very short and regular intervals.

In addition, a synchronous process capability could be provided for various types of simulation computations. A further capability of operating systems that would significantly facilitate the development of VE applications is facilities for time-critical computing and rendering. While it is probably unreasonable to ask the operating system to schedule the time-critical tasks by itself, these facilities should provide the ability for the developer to determine scheduling through tunable parameters.

Looking farther into the future, we expect that distributed VE applications will become common. Developing operating systems that make such distribution transparent and easy to implement then becomes high priority. Another strategy to meet the computation and data management requirements is to distribute the computation and data management to several machines.

There are several possible models for such a system. One is to keep all data and perform all computations on a remote supercomputer Bryson and Gerald-Yamasaki, This approach is motivated when the local workstation does not have a large amount of computing power or large memory.

Another approach is to distribute the data and computations among several computers. In the virtual wind tunnel example, there would be a density machine, which would contain the density data and handle all visualizations of the density field, a velocity machine, which would contain the velocity vector data and handle all visualizations of the velocity vector field, and so on. The resulting visualizations would be collected by the workstation that is handling the graphics and driving the VE interface.

These distributed architectures would require fast low-latency networks of the type discussed elsewhere in this document. There are many occasions on which the computations required to support the VE cannot be done to full accuracy within the VE speed performance constraints. The trade-off between accuracy and speed is a common theme in the design of VE systems. There are occasions in which faster, less accurate computational algorithms are desirable over slower, more accurate algorithms. It is not known at this time how to design these trade-offs into a system in a way that can anticipate all possibilities.

Research into how these trade-offs are made is therefore needed. A current strategy is to give users full control over these trade-offs. This intern will be co-advised by a hardware group to help design viable sensor configurations. This intern should be comfortable with concepts from transfer learning and lifelong learning and have experience working with and processing multi-modal data.

This intern will join a team of applied statisticians, computer scientists,…. Follow us:. Share this page:. A Microsoft custom data type for efficient inference Read more about A Microsoft custom data type for efficient inference. This form contains a series of checkboxes that, when selected, will update the search results and the form fields. Currently selected items are under the "current selections" heading. As fabrication pushes towards smaller feature sizes and more elaborate Peter H.

Recent publications. All publications in this area. Preview Abstract. Amit Sabne Cores that don't count.



0コメント

  • 1000 / 1000