A TFLOPS is short for Terra(Billion) Floating Point Operations Per Second
It simply means how many floating point operations(Such as adding, multiplication, division) can a processing device do in a second.
Threads are simply paths of execution, the more threads a process has, the more processor cores can it use, so in a multi-core environment it is faster.
Both of these are general concepts that apply to both processors and GPUs.
GPUs usually have much more cores(in the hundreds) so parallelism(use of many threads) is very important to achieve high performance there.
There is no direct relationship between the two, but usually the more threads means more processing power, as there is a limit how much transistors and thus flops can we pack into a single core.
You could compute a processors total FLOP speed using the following calculation:
Performance = Cores * CorePerformanceInFLOPS
Tough many processes can't be parallelized well, and the performance increase is less than 50% when adding a second core, and gets less and less effective with more cores.
A thread is a separate thing than a core. A core is a physical entity, while a thread is a path of execution. Tough if you have an n
threaded program, you can't use more than n
cores to do that.
Also please note that this doesn't take into account hyperthreading(mainly found in Intel CPUs) where one physical core runs 2 threads, effectively acting as 2 separate cores.
As for what performance is needed for a specific algorithm, it depends on waaay too many factors to be determined. Just because a hardware has a high FLOP value, it doesn't mean it will be able to use it, if its bottlenecked by Memory bandwidth, or the CPU. Also the algorithm may be optimized poorly or well, also it may be optimized specifically for this hardware or another, and again the hardware may be optimized for this process or another, and the process may be parallelizeable or not(in which case you won't benefit from additional cores) so as you can see its not a question easily answered.