Hello all, specially Gil Brandao<br><br>Actually I want to start CUDA programming for my |C.I have 2 options to do:<br>1) Buy a new PC that will have 1 or 2 CPUs and 2 or 4 GPUs.<br>2) Add 1 GPUs to each of the Four nodes of my PC-Cluster.<br>

<br>Which one is more "natural" and "practical" way?<br>Does a program written for any one of the above will work fine on the other? or we have to re-program for the other?<br><br>Regards.<br><br><div class="gmail_quote">

On Sat, Aug 29, 2009 at 5:48 PM,  <span dir="ltr"><<a href="mailto:madskaddie@gmail.com" target="_blank">madskaddie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div>On Sat, Aug 29, 2009 at 8:42 AM, amjad ali<<a href="mailto:amjad11@gmail.com" target="_blank">amjad11@gmail.com</a>> wrote:<br>
> Hello All,<br>
><br>
><br>
><br>
> I perceive following computing setups for GP-GPUs,<br>
><br>
><br>
><br>
> 1)      ONE PC with ONE CPU and ONE GPU,<br>
><br>
> 2)      ONE PC with more than one CPUs and ONE GPU<br>
><br>
> 3)      ONE PC with one CPU and more than ONE GPUs<br>
><br>
> 4)      ONE PC with TWO CPUs (e.g. Xeon Nehalems) and more than ONE GPUs<br>
> (e.g. Nvidia C1060)<br>
><br>
> 5)      Cluster of PCs with each node having ONE CPU and ONE GPU<br>
><br>
> 6)      Cluster of PCs with each node having more than one CPUs and ONE GPU<br>
><br>
> 7)      Cluster of PCs with each node having ONE CPU and more than ONE GPUs<br>
><br>
> 8)      Cluster of PCs with each node having more than one CPUs and more<br>
> than ONE GPUs.<br>
><br>
><br>
><br>
> Which of these are good/realistic/practical; which are not? Which are quite<br>
> “natural” to use for CUDA based programs?<br>
><br>
<br>
</div>CUDA is kind of new technology, so I don't think there is a "natural<br>
use" yet, though I read that there people doing CUDA+MPI and there are<br>
papers on CPU+GPU algorithms.<br>
<div><br>
><br>
> IMPORTANT QUESTION: Will a cuda based program will be equally good for<br>
> some/all of these setups or we need to write different CUDA based programs<br>
> for each of these setups to get good efficiency?<br>
><br>
<br>
</div>There is no "one size fits all" answer to your question. If you never<br>
developed with CUDA, buy one GPU an try it. If it fits your problems,<br>
scale it with the approach that makes you more comfortable (but<br>
remember that scaling means: making bigger problems or having more<br>
users). If you want a rule of thumb: your code must be<br>
_truly_parallel_. If you are buying for someone else, remember that<br>
this is a niche. The hole thing is starting, I don't thing there isn't<br>
many people that needs much more 1 or 2 GPUs.<br>
<div><br>
><br>
> Comments are welcome also for AMD/ATI FireStream.<br>
><br>
<br>
</div>put it on hold until OpenCL takes of  (in the real sense, not in<br>
"standards papers" sense), otherwise you will have to learn another<br>
technology that even fewer people knows.<br>
<br>
<br>
Gil Brandao<br>
</blockquote></div><br>