Most useful parallel programming algorithm? [closed] - parallel-processing

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 12 years ago.
I recenty asked a question about parallel programming algorithms which was closed quite fast due to my bad ability to communicate my intent:
https://stackoverflow.com/questions/2407631/what-is-the-most-useful-parallel-programming-algorithm-closed
I had also recently asked another question, specifically:
Is MapReduce just a generalisation of another programming principle?
The other question was specifically about map reduce and to see if mapreduce was a more specific version of some other concept in parallel programming. This question (about a useful parallel programming algorithm) is more about the whole series of algorithms for parallel programming. You will have to excuse me though as I am quite new to parallel programming, so maybe MapReduce or something that is a more general form of mapreduce is the "only" parallel programming construct which is available, in which case I apologise for my ignorance.

There's probably two "main" parallel programming constructs.
Map/Reduce is one. At a high, ultra-generic level, it's just parallel divide-and-conquer. Send out the individual bits to parallel handlers, and combine the results when they arrive.
The other main parallel programming construct is the pipeline... pieces of work go through a series of stages, each of which can be run in a parallel thread.
I think that just about any parallelization algorithm is going to boil down to one of those two. I could be wrong, of course.

Related

VHDL for scientific computing [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I was wondering if folks use VHDL/FPGAs in scientific computing.
An example scenario that I was thinking off was say:
Construct an arbitrary precision floating point adder
Configure an FPGA board to then add such numbers
So I was looking for references (example code) where VHDL/FPGAs have been used in scientific computing.
Thanks in advance.
There are several vendors who build heterogeneous computing systems using FPGAs. I doubt you'll find complete source code for such systems.
SRC Computing
Convey Computer
Mitrionics. A reseller of other systems.
Novo-G. An academic project.
Look into radio astronomy. With arrays such as the VLA and ALMA, the massively parallel correlator is the part that could be considered most important. These typically use FPGAs but could use custom-designed chips for extreme performance at higher cost.
Some fine reading:
https://science.nrao.edu/facilities/cdl/digital-signal-processing
http://web.njit.edu/~gary/728/Lecture8.html

Quantum computers and algorithm performance [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I have a question. Gradually quantum computers will emerge someday. So, nowadays making algorithm efficient is important; I mean, making it optimal to run as fast as possible. But once quantum PC emerges does the algorithm performance improvements are still important?
Cheers
Quantum algorithms have the possibility of searching a complete number space for an answer in one go, that much is true. However, the algorithm you choose will still determine how many of these steps are needed, and whether you can pack the whole space with useful inputs.
I think its too early to worry about it. It also might be quantum computer will never made.

How to optimize F# programs generally [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I have an interpreter for a lisp-style language in F#, and have just gotten into the optimization phase. Simple tests of the evaluator reveal that I need to optimize it in an extreme manner. However, I don't have a general background in F# performance or optimization.
Are there any good general knowledge resources for F# program optimization? Particularly useful are tips of keeping cache coherency and surprising primitive performance issues. A cursory search hasn't revealed much on the internet.
Thank you!
Performance optimization tricks are all myths. As #svick said, it's no better way than profiling your program, identifying hot spots and optimizing them using concrete benchmarks.
Since you asked, here is some information floating around:
A bunch of good answers about F# performance: C# / F# Performance comparison
Using inline for performance optimization: Use of `inline` in F#
Using structs instead of records for better performance: http://theburningmonk.com/2011/10/fsharp-performance-test-structs-vs-records/
Array-oriented programming for performance-critical code: http://sharp-gamedev.blogspot.com/2010/03/thoughts-about-f-and-xbox-games.html
Concrete case studies of performance optimization:
FSharp runs my algorithm slower than Python
F# seems slower than other languages... what can I do to speed it up?

Matching jobs to applicants [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I have a big database of jobs, each job has numerical and non numerical attributes like(position,field,salary, needed experience...)
and applicants to jobs that determine some attributes like(age, expected salary...)
I want to create an application that do automatic matching between the jobs and the appropriate candidates*What is the best Algorithm to apply (data mining or artificial intelligence) to implement this app.*
thx for your replies
It seems that what you want is a recommendation algorithm, not matching algorithm.
There is not best recommendation algorithm which work for all cases. You should look into several algorihms and select which suits best for your situation. I recommend you to look at Apache Mahout which implements lots of such recommendation algorithms and is an open-source library.

On average, how efficient is a scripting engine? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
When dealing with a scripting engine, I'd expect them to be fractions slower than code compiled to assembly. What sort of efficiency numbers are there for major scripting languages (if any)?
Or is this a futile question?
Thanks.
Go to http://shootout.alioth.debian.org/ for actual numbers.
As you can see, languages that are usually compiled (i.e. C, C++, etc.) destroy interpreted languages in terms of performance (both running time and memory).
But the question is odd.
Any scripting language can be made compilable into native code (i.e. assembly) and vice versa (e.g. HipHop: PHP to C++ compiler).
And language aside, some compilers are much better than others because they know how to optimize the code to run faster natively. And they also differ between single-core and multi-core systems.
So if I can take a guess... if you're making a decision on what language to use based on performance (especially... ESPECIALLY if you're talking about scripting languages), you're probably making a mistake. There are many more considerations beyond performance that impact on selection of a programming language for a project.
If I guessed wrong, sorry!

Resources