questions

questions

Good day! I have several questions:

1) May my script of program build (Makefile) get information about data on which the program will be launched on? (I mean, I have a lot of algorithms and implementations for different amount of input data), number of threads, which may be used by it( also for generation of the optimal algorithm/implementation)

2) What is the maximum ratio of the file's size "flights.txt" concerning RAM ( for example file is 20 mb, Ram is 2000 mb. Ratio is 1/100) and what is its possible maximum size in mb, how many arguments of vacation_airports(10 cities, 100 cities...)?

8 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

Hi,

I don't think that you will get any information at compile time, so you would have to decide on run time what algorithm you are running. At run time you get only the information that you have right now: The parameters, the fligths.txt and the alliances.txt.
The number of threads your program should use is passed in as a parameter, at run time, not at compile time.

I don't know about the ratio, but it will be enough RAM if you choose fairly efficient data structures.

I think at the end of the last contest the file sizes where around 2GB. But don't quote me on that. I would simply assume somewhere in that range.

Just a note: I would try to implement one algorithm, which then scales well and works good on small and on large data sets. ;)

Happy coding ;)

Rock the bits!

You must stick to the number of threads given as input parameter. You should adapt your algorithm on runtime, not on compilation time.

For the maximum size, there is no limit for now but lets say that the flight.txt file will fit into main memory.

Hi,

what is the "int nb_threads"? Is it information which gives me number of hardware threads assigned to my process, or is it restriction how much threads my program can have in one moment?

Regards, Dusan.

It is meant for testing how good you parallelized your program. So even if there are more cores available you should only use nb_threads, otherwise it would screw up your results on parallelization, because it would seem like it doesn't improve wtih more threads.

Rock the bits!

Citation :

Heye (aka. slevin7) a écrit :

So even if there are more cores available you should only use nb_threads, otherwise it would screw up your results on parallelization, because it would seem like it doesn't improve wtih more threads.

In fact, you are not allowed to use more than nb_threads in your final submission, as stated by Cédric in another thread: Citation :
Cédric ANDREOLLI (Intel) a écrit :

You absolutely need to take the nbthreads parameter in consideration. For the final examination, we will check that you are not using more threads that you are allowed to.

Citation :

Heye (aka. slevin7) a écrit :

So even if there are more cores available you should only use nb_threads, otherwise it would screw up your results on parallelization, because it would seem like it doesn't improve wtih more threads.

In fact, you are not allowed to use more than nb_threads in your final submission, as stated by Cédric in another thread: Citation :
Cédric ANDREOLLI (Intel) a écrit :

It seems that you are not finding the good result for one of the cities in the play hard file.

You absolutely need to take the nbthreads parameter in consideration. For the final examination, we will check that you are not using more threads that you are allowed to.

Yes, the previous answers are correct. I will just add that we are talking about running threads.

You can manage your threads as you wish as long as there are no more than "nbthreads" running threads at a time.

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui