Online Store | About Us | Blog
Page 1 of 2 in the Science category Next Page
# Sunday, August 08, 2010




Ray Tracing to Replace Rasterization by 2020

Say goodbye to polygons and shaders. Say goodbye to OpenGL and DirectX. The future, from this point on, is all ray tracing.

One chart - one image - shows it perfectly:



(Source: PC Perspective)

Ray tracing outperforms rasterization for large numbers of polygons.

There are many disadvantages to rasterization:
  • It is slow (linear in time) for large numbers of polygons.
  • It does not produce reflections very efficiently or accurately.
  • It cannot dynamically produce effects like refraction or shadows.
  • It relies heavily on textures (which use up tons of space!) to produce lighting effects.
  • Coding rasterized games is difficult because of the requirement to approximate every single lighting effect that would be calculated automatically using ray tracing.
Of course, rasterization does have one advantage (and one only), and that is that on present-day PCs, it can render scenes in real time at higher quality than ray tracing.

Throughout computing history, it has always been the case that temporary approximation techniques were phased out when enough computing power was available to do away with them. For example, the use of color palettes in the 1990s (i.e. 256 colors) disappeared as soon as there was enough GPU memory to store 32-bit pixel values. When resolutions rose to 800x600 and beyond, bitmap fonts could finally be replaced by True Type fonts. Pixels were gradually phased out of the graphics world in favor of ems or inches.

Notice that rasterization has dominated the PC gaming industry since the 1990s. Currently, ray tracing cannot produce scenes at 1080p resolution in real time without sacrificing quality severely. However, this will soon change.

The amount of increase in CPU power (from present levels) needed to allow rendering of ray-traced images at 1080p resolution at 24 fps is only about 10X. This will almost certainly happen before 2020.

There is a movie coming out (in 2012) that is supposedly rendered entirely in real time using ray tracing.

To close off, here is a ray traced image using a ray tracer that I built recently:



Notice the accuracy of the reflections and shadows, and how they come at no extra cost - virtually no performance penalty and no extra code required!

August 8, 2010 2:19 AM Eastern Daylight Time  #    Comments [0] - Trackback
Business | Commentary | History | News | Science | Technology
# Tuesday, July 20, 2010




Designing Benchmarks: Hardware, Software, and QoS

Introduction

There are three types of benchmarks:

  1. Hardware - those that test raw hardware variables like throughput, transfer rate, latency, or bandwidth.
  2. Software - those that test the performance of various algorithms (e.g. pi calculation) on different hardware devices.
  3. QoS - those that test various quality of service aspects, such as security or reliability.

Software Benchmarks

While high-level (software) benchmarks appear to more accurately reflect what we want to measure from a user experience standpoint, they are also harder to generalize or standardize. This is because the hardware resources needed for a pi calculation in C# may differ greatly from those needed for a pi calculation in C++. Ultimately, software benchmarks end up being heavily dependent on the platform being used for development.

There are a few software benchmarks, however, which are worthy of implementation. These are the ones that have a great degree of applicability to the real world and have a very low degree of platform & algorithm variance. In other words, the algorithm needs to be commoditized - the public domain version of the algorithm is the most efficient version of the algorithm available. It needs to take full advantage of all hardware optimizations known at the time, and be applicable in the real world. It also needs to be written for as low-level a platform as possible (e.g. C++).

Examples of viable software benchmarks:

  • Pi calculation (e.g. SuperPI)
  • H.264 video encoding, with fixed settings
  • MP3 audio encoding, with fixed settings
  • Prime number calculation (e.g. Prime95)
  • Fibonacci number sequence

Examples of bad software benchmarks:

  • JavaScript pi calculation - varies by browser type
  • Linux compilation - varies greatly by distribution and configuration
  • XML parsing - varies greatly by algorithm

The rule as far as the algorithm is concerned is, it must be easy to reproduce the most efficient algorithm for that particular task. For example, with pi calculation, the most efficient algorithm is well-documented and readily available. There is no hidden or proprietary algorithm that is more optimized than what is already in the public domain.

Hardware Benchmarks

Low-level (hardware) benchmarks are designed specifically to measure the physical limitations of the underlying hardware. These are generally much more reliable. There is less variance in results. However, they apply less to real world usage. They are also known as "synthetic" benchmarks, because they do not take into account real world usage patterns. Typically, hardware benchmarks will measure things like throughput, bandwidth, or latency.

Examples of hardware benchmarks:

  • Cache memory throughput (read, write, copy) with 64 KB blocks
  • Average RAM read latency with 4 KB blocks at random addresses
  • Hard drive seek time for 1/2 disk seek
  • Peak hard drive transfer rate

The relevance of a hardware benchmark matters more than anything in terms of determining whether it is worth pursuing. For example, it would be irrelevant to measure the error rate of RAM when you are in fact looking for a measure of the performance of the memory subsystem.

QoS Benchmarks

While so far we've discussed only performance testing, there are other variables that we generally would want to measure. These fall under the category of "quality of service" (or QoS) variables. The importance of these variables is often underrated.

Examples of QoS variables:

  • Error rate of a hard drive
  • Security level of the operating system
  • Video rendering quality

These variables have nothing to do with speed, but they are nevertheless important.

Benchmarks should not be just about testing performance. They should include QoS variables as well, since these can determine a purchase decision just as much as performance. Hardware reviewers will often mention these variables and try to quantify them, but there are seldom any objective tests done. We predict that QoS benchmarking will be more important over the coming years, and we plan to focus more on this relatively unexplored territory.

Conclusions

Dacris Benchmarks offers many hardware benchmarks. There is only one software benchmark in Dacris Benchmarks at the moment, and that is the CPU test, since there is no definitive way to measure the raw throughput of a CPU. The CPU benchmark is mainly a clone of the Whetstone benchmark.

Currently, our emphasis with Dacris Benchmarks has been on hardware benchmarks as much as possible. Our customers have indicated to us that this is the right strategy. However, in the future we plan to expand into QoS benchmarks as well, as this is a relatively unexplored area.

Questions? Suggestions? Feel free to post your comment below.

July 20, 2010 1:25 AM Eastern Daylight Time  #    Comments [0] - Trackback
Business | Science | Technology | Tips
# Saturday, February 20, 2010




Upward Mobility is Dead: How persistent unemployment will shape the next decade

This is a follow-up article to this majestic piece of writing: How a New Jobless Era Will Transform America (The Atlantic)

After reading the above article, a few ideas popped into my head which may not be known to the writer, given that the writer (and his/her sources) are probably members of an older generation. However, since I am a member of the so-called "generation Y" or the "echo boom" generation, I may be able to shed some light on what I am thinking (and maybe what other members of my generation are thinking) with respect to this issue.

First, it's evident at this point that the idea of upward mobility - the idea that you could work your way up the corporate ladder - is no longer an idea that can be embraced. It is far too risky. It used to be that if you worked hard enough, you would eventually end up in a highly-prestigious position, earning lots of money, and having a fair amount of authority (all of which are highly potent aphrodisiacs to undisciplined individuals).

OK, I said a mouthful so let's backtrack a little. What is an "undisciplined individual"? Put simply, all humans have instincts and most humans make decisions solely based on feeling (emotion), rather than rational thought. In basic sociology, a human has several aphrodisiacs which elevate his/her sense of self-worth. These are (to name a few): power, wealth, and social status. Most individuals act as robots seeking these three aphrodisiacs for their entire lives. Unless you are aware of this fact of nature and discipline yourself to be content with seeking happiness in other forms, you are considered an "undisciplined individual," who is purely seeking to maximize one's social status, power, and/or wealth. The vast majority of Americans are what I consider "undisciplined individuals."

Now, believe it or not, there are many people in the world who define themselves largely by the position they hold, or by the organization in which they are members. This is one way you can define yourself, but what happens when you lose your position, or the organization you are in collapses and you're left without a position? It is my belief that if you define yourself in such a way, you will suffer enormous emotional scars resulting from your "break-up" with your organization. In fact, it is almost identical to the break-up of a marriage. In a sense, many people are "married" to their jobs.

So what is the antidote to this madness? And why do I consider it "madness"? Well, it's madness because first of all, you are probably not a founder of the organization in which you are a member. Quite probably you have a very low-ranking position within that organization and even more probably you will never reach the level of power / control that the founding member has. That's number one. Number two, it's madness because in this economic environment, anybody can be fired from any position for any reason (or no reason at all!). While this has always been the case to some extent, it is only now that it is happening on a mass scale, reaching levels where the risk of being fired from a position to which you are married actually exceeds the benefit of "becoming married" to that position.

So what is the antidote to the madness? You have to think clearly and look at the facts. The facts are that these worker-organization relationships are becoming increasingly more transient. This idea was put forth by Alvin Toffler in his 1970 book "Future Shock," in which he describes a condition where relationships (of any kind) become increasingly more transient in the not-too-distant future. This has come to pass in the form of increased divorce rate as well as increased job insecurity. I think there is no question at this point that Toffler was right and that this trend will continue for a long time.

So given all that, it is far more rewarding to think of yourself in terms OTHER THAN your relationships with other organizations. When I look at myself, I value myself based on my ability to solve problems creatively, or by my ability to think logically. These are attributes that are fundamental to survival, but which have been almost eternally ignored at the societal level. I believe these attributes are far more fundamental than anything else. You need to define yourself based on your fundamental attributes that make you a resilient individual in the face of any natural or environmental situation. Always avoid the trap of thinking that your identity is defined by what others think of you. This is a fundamental shift in mentality that needs to occur on a massive scale. This shift is what separates a "disciplined individual" from an "undisciplined individual." We, as humans, need to become far more self-disciplined and far more aware of the destructive aphrodisiacs I mentioned earlier.

As an aside, two things I try to avoid constantly are:
1. Believing (or becoming attached to) others' opinions of me.
2. Following popular beliefs or behaviors unquestioningly.

Coming back to the idea that upward mobility is dead, imagine you start out your career as a Walmart cashier. Then, 20 years later you're back at Walmart as a cashier. If you grew attached to the idea that you would advance over time, you would be devastated to find yourself 20 years later in exactly the same position. However, if you defined yourself by other characteristics which may not be as socially respectable (yet) as the idea of career advancement, you would be relatively unaffected by your career path, however erratic it may be. It is an idea from many oriental religions which must be embraced: "avoid attachment to things which are invariably transient."

Sadly, many are refusing to accept the new reality and construct a belief system which is more consistent with it. Instead, it appears that many are resorting to having children as a way to escape their insecurities and gain social approval. It's understandable that we are social beings. And it requires an enormous shift in thought patterns in order to avoid the common traps that cause us to do undesirable things purely for social approval. Yet, in order to evolve as a species, we must engage in precisely this sort of detachment from the base aphrodisiacs that have driven society for generations. So if you find yourself unemployed, become a Buddhist monk. It's a step in the right direction.

To close off, I will give one last example which illustrates what can happen when jobs disappear but the parasitic aphrodisiacs of power and social approval remain. In Philadelphia, white neighborhoods are now becoming increasingly black. White males, who have held blue-collar and even white-collar jobs have now been unemployed for years. Some are now resorting to precisely the same kind of behavior that blacks have been struggling with for decades: fathers abandoning their children, drug dealing, violent crime, and domestic violence. This is all because, fundamentally, blacks are no different from whites. It is only the economic circumstances which produce a difference. Now that the differences in economic circumstances between blacks and whites are beginning to narrow, we are seeing a convergence in terms of behavior patterns. Unfortunately, this convergence is happening in the wrong direction: instead of blacks becoming more affluent, whites are becoming poor.

All too often, persistent widespread poverty results in a loss of dignity among members of a society. This is certainly understandable, but there are many societies which, by our definitions of wealth, are extremely poor. Yet, these societies are very cohesive and peaceful. We do not have to go through a break-up of society as a whole as a result of increased overall poverty. In fact, the society of the 1930s was very cohesive and generally in good spirits. People helped each other. We should work toward a healthier society, by valuing those things which are fundamental to survival: knowledge, and creative problem solving, rather than those things which are the primal aphrodisiacs of undisciplined individuals.

February 20, 2010 2:11 PM Eastern Standard Time  #    Comments [1] - Trackback
Commentary | Finance | History | News | Personal | Science
# Sunday, December 27, 2009




Philosophical Bull and Gnostic Brain Flatulence

Is time linear?
Does every interval of time contain the same amount of information?
What does time contain anyway?

Time is a container for change. Time contains the delta between one state of the cosmos and another. Each finite interval of time contains within it the amount of change that has occurred from the beginning of that interval to the end of that interval.

In a sense, change is novelty and novelty is change. Novelty is merely a synonym for change. So when we think about novelty theory, to refer back to the work of Terence McKenna, we're really analyzing the content of time.

We know that the content of space is matter, and energy. But what is the content of time? It's a perplexing question for those who cannot see the logical conclusion that time in fact contains information. For it is information that informs change. Information is nothing other than change, and change is information. Novelty is therefore information. We're running around in circles describing the same phenomenon with different words, each word trying to out-grandiose the others.

But the fact is simple and yet stunning: Time contains information, much like how space contains matter.

Now, we know another interesting fact from basic observation of the world around us, and that is that information is cumulative. You never lose information. This has been elaborated by Terence McKenna as well. Essentially, the fabric of time itself is cumulative. At every stage in the evolution of the universe, we have gone from a state of low complexity to a state of higher complexity. We've never "devolved" into a state of lower complexity. Complexity has always increased.

Well, what is complexity? First, it helps to understand how we obtain complexity. At the start of our universe, if we accept the big bang theory, the highest level of complexity in the universe was characterized by a primordial soup of electrons and elementary particles. From that evolved the first atom, clearly a structure with an order far more advanced than what had existed prior to its emergence out of the primordial ontos.

Now, this first atom, the hydrogen atom, contained a whole lot more information than its parts, or even the sum of its parts. Because the hydrogen atom has a logical structure far more elaborate than the logical structure which represents an electron. Indeed, it is this logical structure that we must talk about when we're talking about complexity and information. The hydrogen atom is an entity which requires far more information to describe than the electron or the proton alone. So basically, the primordial soup required a very small amount of meta-data (meta-information, or logical structure) to describe, compared to what followed (i.e. the hydrogen atom). This is where we get the notion of increasing complexity. Complexity is the measure of the quantity of information required to produce the simplest possible explanation of a particular physical phenomenon.

As the universe evolved further, we got more and more complex structures. We got other atoms, molecules, organic compounds, and then biological life, and finally social life; intelligent life. Each of these complexities builds on the previous level of complexity. Molecules build on atoms. Social life (cultural or intelligent life) builds on acultural, biological life. Microbial life builds on essential organic compounds. In essence, each new level of complexity contains within it all existing levels of complexity.

Thus, complexity is conserved. We can in fact emphatically state that complexity is never destroyed. It is strictly conserved.

So what does this all imply for the nature of time? Well, time contains within it descriptions of changes within entities of varying complexity. At the beginning of the universe, each second of time contained a only a very minute description of changes, because only a minute description was needed for the level of complexity at which the universe had arrived at that time. Basically, God only needed a handful of bits of information to describe a change in the state of the universe when the universe was still in its primordial soup state.

As the universe complexified, necessarily the amount of information contained within each second of time needed to increase, in order to completely describe the more complex universe that was emerging. Basically, each level of complexity required more information about the changes within that level of complexity.

Thus, as the universe cooled and complexified, time became more and more burdened with information, so that each moment of passing time contained within it more information than the previous moment.

This process continued to this day. With every passing moment, time "expands" to contain more information than any previous moment that has ever existed. This is a profound concept to grasp, with profound consequences for our perception of time. It means that our linear time assumption, the assumption that time is isotropic and linear - that each moment is the same as every other moment, and that each interval of time is qualitatively and quantitatively the same as every other interval - is absolutely patently false and misleading.

We have to ditch the idea that time is somehow plain, linear, and uninteresting. Time is extremely interesting, and ought to be studied by science like nothing else, because we don't have a sufficiently clear understanding of the nature of time.

But the interesting implications of this "expanding time" theory are many. This theory actually validates intuitively-derived beliefs in many cultures that time is accelerating, or that time is heading towards an ultimate end. In fact, even modern science has managed to create a theory mainly involving human culture and cultural progress which indicates that there may be a point in the not too distant future where all of our knowledge, having been preserved thanks to the law of conservation of complexity, leads to a point of infinite temporal acceleration - a point of asymptotic discovery and asymptotic change, putting an end to time itself. Indeed, this very idea has been prophesied by others, including the ancient Mayans with their apocalyptic 2012 prophecy, or the Christians, or even modern-day prophets like Terence McKenna, although I'm sure he would despise being called a "prophet."

We must challenge all of our dearly-held assumptions about time or else we will not proceed to make true scientific discoveries. Today, we carry notions about time that are akin to believing that the Earth is flat or that it sits atop the backs of four turtles. For example, we believe that causal connections can only exist from the past to the future. We have established one predetermined direction for causality. Yet, we can clearly observe retrocausal effects all around us that seem to defy the laws of physics and all too often get classed as mere coincidences or worse, paranormal phenomena. In fact, such occurrences should be observed experimentally and we should try to develop a theory for explaining such retrocausal phenomena as the appearance of 9-11 as a motif in various artifacts well in advance of the actual event which occurred on 9-11-2001. Other retrocausal phenomena include such cases as the flight of animals to safety prior to a devastating tsunami or earthquake. Anything that is often classed as premonition or prophecy ought to be investigated as a potential candidate for retrocausality - events from the future having causal links to events in the past. It's crazy to think that the future could have a causal influence on the past, as it means that the past is now just as malleable or perhaps more malleable than the future!

Anyway, I hope I've been able to shed some light on the strange nature of time and why what we humans often think is obvious is really not so.

I could probably talk further here but instead I think I need to actually summarize what I described:
  1. Time is a container for... change in information, also known as novelty. Necessarily, then, time has at least two dimensions.
  2. Complexity is conserved. Each new level of complexity builds on lower levels. Complexity is never destroyed or reduced.
  3. Time is non-linear and quite probably anisotropic.
  4. Time is expanding, with each one-second interval containing more information than any previous one-second interval. This is subjectively perceived as an acceleration.
  5. There may be an endpoint for time, consisting of an asymptotic acceleration of the rate of progress toward infinite complexity.
  6. Causality probably works both ways, even if it seems odd to us. Retrocausality seems to explain perfectly the phenomenon of prescience in some organisms.
Bend your mind, but be careful not to break it!

December 27, 2009 4:38 AM Eastern Standard Time  #    Comments [0] - Trackback
Commentary | History | Personal | Science | Technology
# Sunday, September 06, 2009




Malcolm Gladwell: Genius Takes 10,000 Hours!

Fascinating video:


September 6, 2009 2:20 AM Eastern Daylight Time  #    Comments [0] - Trackback
Commentary | Personal | Science
Archive
<September 2010>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
About the author/Disclaimer

Disclaimer
The opinions expressed herein do not represent the opinions of the author or of any employer, employee, or associate of the author.

© Copyright 2010
Dan Tohatan
Sign In
Statistics
Total Posts: 182
This Year: 38
This Month: 0
This Week: 0
Comments: 46

Computers
Top Blogs


Copyright © 1999-2010 Dacris Software, Inc. All Rights Reserved.     Privacy Policy  |  Who We Are  |  Blog

Need professional resume writing services?