Greetings Everyone,
Progress in the past week:
-
Implemented pop() and remove() functionality.
-
I also have some results regarding parallel deletion linked list(list of list implementation)
1.First of all, I was using cpu_time regarding which Arjen mentioned that it returns the sum of computation time taken by each thread.
2.So a better fit for this was to use wall clock time. (system_clock)
3.Though the test results still didn’t match our expectations and the computation time actually increased instead of decreasing.
4.Arjen had a possible reason for this abrupt outcome
5.A detailed note on what was the test program and the output received can be found here. -
One explanation for this: the OS’s memory management gets in the way. It may or may not be threaded itself, or it needs to take a lot of care to ensure things remain consistent. That would be a valuable lesson: calculations benefit from multithreading, but data structures much less. Well, that may be cutting corners a bit, but that would be my conclusion.
-
For now, we have decided to drop the plan of parallel computing because:
1.The outputs are not desired
2.We discussed the use of parallel computing in stdlib and how does that affect a user in general. (Maybe the user can use stdlib in some program that is already working on parallel threads so he might run into the complexity of nested parallel programs) -
In addition to all these, thanks to @themos to let me know of the compilations errors that he faced in the NAG compiler which were overlooked in gfortran compiler. I will fix all such possible errors.
For some personal reasons, I couldn’t achieve my goals for the past week.
So I intend to finish them and also set extra tasks for this week.
Plan for the coming week:
- Implement insert() API.
- Open an issue on Fortran-Lang stdlib.
- Make a report of testing the list_of_list module to hold a million or more strings of 20 to 1000 characters.
- Fix the compilation errors (NAG).
Thank you