They are doing the match correctly. Floating point operations are commutative: a + b = b + a. But they are not assoziative: (a + b) + c != a + (b + c). This leads to different results on GPUs where algorithms are parallelized in different ways. Let's assume in your algorithm you have to calculate the inner product of a vector v = [v1, v2, v3,..., vn]. A CPU might calculate rho = v1 + v2 + v3 +... + vn. GPU1 might calculate in parallel: rho1 = v1 + v2, rho2 = v3 + v4,... and finally rho = rho1 + rho2 + rhon. Depending on the GPU the way such operations are parallelized differs because the number of floaint point processors differs. So the hardware modifies the formular in a subtile way that leads to varying results. Great references for this are "Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs" and of course "What Every Computer Scientist Should Know About Floating-Point Arithmetic".
'We' by Yevgeny Zamyatin is an excellent dystopian book that is said to have inspired Orwell. There are incredible non english SciFi novels out there but many top 100 lists and english readers seem to be ignorant and miss out on them albeit they are definitley worth the read. Also read Stanisaw Lem, his books are hilarious ('The Futurological Congress') and philosophical ('Solaris').
I have built 4 and 8 GPU systems. For 8 GPUs the TYAN FT72B7015 is currently the only solution that I know of. Here are some product offers with this board http://blog.renderstream.com/2010/11/renderstream-announces-12-tflop-systems/
The GeForce cards are fine but since they are not built for 24/7 on HPC use, most vendors will warn you about warranty issues if something breaks in such a system. But they are cheap, just put 2 additional cards on the shelf next to the system and replace if needed. They get extremely hot, so consider how to cool such a beast in advance. The cards are also considerably faster than the Tesla solutions. If you need raw performance, ECC will slow you down so see if you can do without.
While I can not comment on the content or merit of this work since I have not read the paper I can say that there is a lot of research going on in the area of MRI and a number of exciting things are happening. I work in a research group that works on impressive MRI techniques combined with algorithms that allow taking entire MRI movies (not just photographs). This is extremely interesting when looking at the beating human heart, speaking humans or moving joints. We are really just beginning to explore the potential this technology has for clinical applications. More information including impressive videos can be found here: http://en.wikipedia.org/wiki/Real-time_MRI.
The idea behind the extremely fast acquisition times is extreme under-sampling combined with iterative algorithms that are able to produce high quality images despite the incomplete measurements. This algorithms also exploit the fact that between two frames there is not a lot of change in the images since they are taken at time intervals of only dozens of ms. They are of course more complicated than simple fourier transforms as they model the acquisition process in more detail.
But seriously, I think the language is amazing. The fact that they built a turing-complete language inside the template engine essentially by accident (thus allowing meta programming and modern C++), the fact that by now we can write simple compile time compilers (see boost proto) and the fact that you can so radically change the syntax of the language that you can basically make it look like anything you want should convince someone who spends some time with a C++ compiler and a couple of Boost libraries of this fact.
NT2 http://github.com/jfalcou/nt2/ is an emerging numerical computation library built on top of very modern C++ libraries and ideas. It is closely related to Boost libraries.
From the description:
The Numerical Template Toolbox (NT2) is an Open Source C++ library aimed at simplifying the development, debugging and optimization of high-performance computing application by providing a Matlab like syntax that ease the transition between prototype and actual application.
A way to contribute would be to make yourself familiar with it's use (e.g. port some of your Matlab scripts). Try to understand the basics of how it works internally. You will find features missing that you could try to add. Above all though, you will learn a lot.
While I agree with most of what you say in your article, there are large parts of the Pirate-Agenda missing in you analysis. One of the major topics the party concerns itself with is one of the most important questions we as a society will face in the coming years: privacy and freedom. I think these points should not be missing in any analysis of the pirate party.
if such a system could reliably detect which window I'm focusing on/looking at, to keep the focus on it or to bring it to the front. I know such systems exist but having it as a feature of the operating system (I can use it instantly without any installation or other annoyances) would be awesome.
I think it is important to note that they use fairly sophisticated (multiple times more expensive than the drone itself) motion capture equipment to locate and control the drone.
The company I work for physically breaks the lenses of all devices that have cameras in them. I'm not sure what they do but you don't see anything with that camera after they are finished.
If it's a plastic lense you could simply destroy it with a hot needle.
Those are valid points but I'm not sure how applicable they are in this situation. You have layers in a system to abstract functionality and hide problems or "difficult stuff" in a lower layer so that the engineers developing upper layer stuff don't have to think about it - they just use it and it works.
In my opinion this is an example where the opposite happens. As an application developer I wouldn't want to think about the crazy internals of the underlying file system - I would simply use it and expect it to work.
So is this a new trend to design systems? Make them reliable from top to bottom? Designing an upper-layer part of the system to work around the flaws of a lower layer system component is often necessary but is not the right thing to do it.
Telling application developers to change their applications because a new version of the file system breaks their stuff is madness. No matter what POSIX standards say: it worked before, it is broken now: go fix it.
It depends on how you look at it really. If you look at the planet, the plane falling into it and the person inside the plane falling with it there is certainly gravity. However if you only look at the plane and the person inside it there is no gravity affecting the person. The forces affecting the person relative to the plane are almost zero.
Or similarly take a truck that carries cars on it. The truck is driving a certain velocity and so are the cars parked on the truck. However if you take the truck as your reference system the cars parked on the truck have no velocity relative to the truck. They are parked.
This is actually an important principle of physics. It also explains why you can drive a car onto a truck going 40mph (like Knight Rider does it) without crashing into the truck.
The title is a quote from Clifford Stoll, astronomer, computer expert and high school teacher who argues that you don't learn with computers but with books and great teachers.
I tend to agree with him. Computers are mere tools, great tools that are fun to tinker with. But outfitting entire classrooms with computers will not enable the student to learn more or better. Thinking that computers are an integral way of how we learn in the future is as wrong as believing television changes the way we learn.
Stoll even suggests that in most cases computers are only entertainment devices and if you think about it is true more often than you might realize or want to admit. Students should definitely learn to use computers but they can not replace good teachers so in my opinion computers should be treated as tools like a hand calculator or an oscilloscope you bring in for physics experiments. So laptop carts seem to make the most sense.
A very interesting talk by Clifford Stoll where he explains this opinion can be found here: http://video.google.com/videoplay?docid=-666540182028461233
This is the same Jolt that owns the legendary Planetarion (http://www.planetarion.com/) browser game. They don't seem to invest a whole lot of money into Planetarion but apparently are creating an entirely new game. This is sad for me because I prefer science fiction and strategy over role playing and loved Planetarion back in the days.
Jolt recently got bought by Omac Industries (http://omacindustries.com/). They also own Nation States, a popular nation simulation browser game.
I can imagine that this is part of the deal with the music industry. They might have said: ok, you may drop the DRM but if we find one of those DRM free files on a file sharing network we want to know who did it.
Or maybe Steve offered this as compromise to the industry. Maybe he even exploited the industries apparent lack of understanding new technologies and told them it's a watermark. Well, probably not.
But imagining the background stories that might have lead to things like "personal info in DRM-ree files" is fun!
To get their blog entries back people might be able to use Google Reader. If journalspace provided RSS feeds and if the entire blog posts were part of the RSS feed and if somebody subscribed to the RSS feed in Google Reader one should be able to obtain all blog posts from when the first user followed the blog with Google Reader. Here are some details: http://www.niallkennedy.com/blog/2005/12/google-reader-api.html
They are doing the match correctly. Floating point operations are commutative: a + b = b + a. But they are not assoziative: (a + b) + c != a + (b + c). This leads to different results on GPUs where algorithms are parallelized in different ways. Let's assume in your algorithm you have to calculate the inner product of a vector v = [v1, v2, v3, ..., vn]. A CPU might calculate rho = v1 + v2 + v3 + ... + vn. GPU1 might calculate in parallel: rho1 = v1 + v2, rho2 = v3 + v4, ... and finally rho = rho1 + rho2 + rhon. Depending on the GPU the way such operations are parallelized differs because the number of floaint point processors differs. So the hardware modifies the formular in a subtile way that leads to varying results. Great references for this are "Precision & Performance: Floating Point and IEEE 754 Compliance for NVIDIA GPUs" and of course "What Every Computer Scientist Should Know About Floating-Point Arithmetic".
'We' by Yevgeny Zamyatin is an excellent dystopian book that is said to have inspired Orwell. There are incredible non english SciFi novels out there but many top 100 lists and english readers seem to be ignorant and miss out on them albeit they are definitley worth the read. Also read Stanisaw Lem, his books are hilarious ('The Futurological Congress') and philosophical ('Solaris').
I have built 4 and 8 GPU systems. For 8 GPUs the TYAN FT72B7015 is currently the only solution that I know of. Here are some product offers with this board http://blog.renderstream.com/2010/11/renderstream-announces-12-tflop-systems/ The GeForce cards are fine but since they are not built for 24/7 on HPC use, most vendors will warn you about warranty issues if something breaks in such a system. But they are cheap, just put 2 additional cards on the shelf next to the system and replace if needed. They get extremely hot, so consider how to cool such a beast in advance. The cards are also considerably faster than the Tesla solutions. If you need raw performance, ECC will slow you down so see if you can do without.
While I can not comment on the content or merit of this work since I have not read the paper I can say that there is a lot of research going on in the area of MRI and a number of exciting things are happening. I work in a research group that works on impressive MRI techniques combined with algorithms that allow taking entire MRI movies (not just photographs). This is extremely interesting when looking at the beating human heart, speaking humans or moving joints. We are really just beginning to explore the potential this technology has for clinical applications. More information including impressive videos can be found here: http://en.wikipedia.org/wiki/Real-time_MRI.
The idea behind the extremely fast acquisition times is extreme under-sampling combined with iterative algorithms that are able to produce high quality images despite the incomplete measurements. This algorithms also exploit the fact that between two frames there is not a lot of change in the images since they are taken at time intervals of only dozens of ms. They are of course more complicated than simple fourier transforms as they model the acquisition process in more detail.
Exactly. Put most of your stuff on a freedom box.
It's really scary when more and more of the dystopian science fiction stories become reality. Vernorn Vinge wrote about this in Rainbows End.
How is this not beautiful:
template<class S1, class S2> struct cartesian_product_types
{
template<class V, class S, class State>
struct inner
{
typedef typename boost::mpl::fold<S
, State
, boost::mpl::push_back< boost::mpl::_1
, std::pair<V
,boost::mpl::_2
>
>
>::type type;
};
typedef typename boost::mpl::fold<S1
, boost::mpl::vector<>
, inner<boost::mpl::_2, S2, boost::mpl::_1>
>::type type;
};
But seriously, I think the language is amazing. The fact that they built a turing-complete language inside the template engine essentially by accident (thus allowing meta programming and modern C++), the fact that by now we can write simple compile time compilers (see boost proto) and the fact that you can so radically change the syntax of the language that you can basically make it look like anything you want should convince someone who spends some time with a C++ compiler and a couple of Boost libraries of this fact.
NT2 http://github.com/jfalcou/nt2/ is an emerging numerical computation library built on top of very modern C++ libraries and ideas. It is closely related to Boost libraries.
From the description: The Numerical Template Toolbox (NT2) is an Open Source C++ library aimed at simplifying the development, debugging and optimization of high-performance computing application by providing a Matlab like syntax that ease the transition between prototype and actual application.
A way to contribute would be to make yourself familiar with it's use (e.g. port some of your Matlab scripts). Try to understand the basics of how it works internally. You will find features missing that you could try to add. Above all though, you will learn a lot.
While I agree with most of what you say in your article, there are large parts of the Pirate-Agenda missing in you analysis. One of the major topics the party concerns itself with is one of the most important questions we as a society will face in the coming years: privacy and freedom. I think these points should not be missing in any analysis of the pirate party.
if such a system could reliably detect which window I'm focusing on/looking at, to keep the focus on it or to bring it to the front. I know such systems exist but having it as a feature of the operating system (I can use it instantly without any installation or other annoyances) would be awesome.
I think it is important to note that they use fairly sophisticated (multiple times more expensive than the drone itself) motion capture equipment to locate and control the drone.
I kind of miss Master of Orion on the list. A truly great game that I even like to play in 2010 from time to time.
Here's an image: http://www.flickr.com/photos/cisco_pics/4406738473/sizes/o/
Thank you for that link. Now let's compress that video back to 4kb.
So either Linux is more secure than other operating systems or Linux users are smarter than other computer users.
The company I work for physically breaks the lenses of all devices that have cameras in them. I'm not sure what they do but you don't see anything with that camera after they are finished. If it's a plastic lense you could simply destroy it with a hot needle.
Those are valid points but I'm not sure how applicable they are in this situation. You have layers in a system to abstract functionality and hide problems or "difficult stuff" in a lower layer so that the engineers developing upper layer stuff don't have to think about it - they just use it and it works. In my opinion this is an example where the opposite happens. As an application developer I wouldn't want to think about the crazy internals of the underlying file system - I would simply use it and expect it to work.
So is this a new trend to design systems? Make them reliable from top to bottom? Designing an upper-layer part of the system to work around the flaws of a lower layer system component is often necessary but is not the right thing to do it. Telling application developers to change their applications because a new version of the file system breaks their stuff is madness. No matter what POSIX standards say: it worked before, it is broken now: go fix it.
No, I believe there it no difference between you being weightless inside the plane and your blood being weightless inside of you.
It depends on how you look at it really. If you look at the planet, the plane falling into it and the person inside the plane falling with it there is certainly gravity. However if you only look at the plane and the person inside it there is no gravity affecting the person. The forces affecting the person relative to the plane are almost zero.
Or similarly take a truck that carries cars on it. The truck is driving a certain velocity and so are the cars parked on the truck. However if you take the truck as your reference system the cars parked on the truck have no velocity relative to the truck. They are parked.
This is actually an important principle of physics. It also explains why you can drive a car onto a truck going 40mph (like Knight Rider does it) without crashing into the truck.
The title is a quote from Clifford Stoll, astronomer, computer expert and high school teacher who argues that you don't learn with computers but with books and great teachers. I tend to agree with him. Computers are mere tools, great tools that are fun to tinker with. But outfitting entire classrooms with computers will not enable the student to learn more or better. Thinking that computers are an integral way of how we learn in the future is as wrong as believing television changes the way we learn.
Stoll even suggests that in most cases computers are only entertainment devices and if you think about it is true more often than you might realize or want to admit. Students should definitely learn to use computers but they can not replace good teachers so in my opinion computers should be treated as tools like a hand calculator or an oscilloscope you bring in for physics experiments. So laptop carts seem to make the most sense. A very interesting talk by Clifford Stoll where he explains this opinion can be found here: http://video.google.com/videoplay?docid=-666540182028461233
This is the same Jolt that owns the legendary Planetarion (http://www.planetarion.com/) browser game. They don't seem to invest a whole lot of money into Planetarion but apparently are creating an entirely new game. This is sad for me because I prefer science fiction and strategy over role playing and loved Planetarion back in the days. Jolt recently got bought by Omac Industries (http://omacindustries.com/). They also own Nation States, a popular nation simulation browser game.
I can imagine that this is part of the deal with the music industry. They might have said: ok, you may drop the DRM but if we find one of those DRM free files on a file sharing network we want to know who did it. Or maybe Steve offered this as compromise to the industry. Maybe he even exploited the industries apparent lack of understanding new technologies and told them it's a watermark. Well, probably not. But imagining the background stories that might have lead to things like "personal info in DRM-ree files" is fun!
To get their blog entries back people might be able to use Google Reader. If journalspace provided RSS feeds and if the entire blog posts were part of the RSS feed and if somebody subscribed to the RSS feed in Google Reader one should be able to obtain all blog posts from when the first user followed the blog with Google Reader. Here are some details: http://www.niallkennedy.com/blog/2005/12/google-reader-api.html
As far as I know what you see when asking NVCC to keep all intermediate files is PTX code. This is not the code the device executes.