Commit Graph

150 Commits

Author SHA1 Message Date
Thomas Preud'homme f1b3174af3 Fix various bugs in log creation and parsing
* Force english locales (esp. for numeric values)
* Handle french and english numeric values
* Handle absence of useless_prod log
* Handle unique cache hierarchy
2011-02-24 21:00:09 +01:00
Thomas Preud'homme ff7c38da55 [commtech] Display misses of L1 cache
- Remove infos about last level cache
+ Add misses of L1 cache
2011-01-28 23:59:57 +01:00
Thomas Preud'homme 7d7ad0c46a [commtech] Make WORDS_PER_BUF indep of BUF_SIZE.
The number of data sent must be independent of the buffer size chosen
by each algorithm.
2011-01-28 04:56:44 +01:00
Thomas Preud'homme b1316fb8a4 [commtech] Use param variable for matrice calc.
Matrice calculation library should not take parameter value 16 hardcoded
but use the value of the param variable.
2011-01-25 17:27:07 +01:00
Thomas Preud'homme aef40ff651 [commtech] Fix cache line size
Cache line size in current processors (at least the one used for tests:
cerclon) is 64 bytes, not 128. Thus modifying the declaration in
commtech.h
2011-01-25 17:25:38 +01:00
Thomas Preud'homme c3aad28ad5 [commtech] Add calculation method
Add a calculation method which add the value of the first integer of
n consecutive cache lines and write the results in one of the integer of
these cache lines. Next calculation uses the next n consecutives cache
lines and write the result in the next integer.
2011-01-25 17:24:53 +01:00
Thomas Preud'homme 975411a824 Split CSQ in 2 communication techniques.
* Divide CSQ in 2 communication techniques: one with 2 slots (as in
  BatchQueue aka c_cache) and one with 64 slots (as in the article)
* Rename fake communication technique in none communication technique
  and disable any activity (send no longer does anything)
2011-01-25 17:24:53 +01:00
Thomas Preud'homme 5eb7fb50c7 [commtech] CSQ use memcpy in dequeue for fairness
Paper about CSQ uses memcpy in enqueue and dequeue. Although it is not
possible to use memcpy in enqueue because of current API, it is possible
to use memcpy in dequeue, hence this commit.
2011-01-19 12:37:14 +01:00
Thomas Preud'homme 7db514a706 [commtech] Fix time metric pattern
time metric pattern need to include dots and several elements as a time
is typically of the form 42.42424242
2011-01-16 17:30:00 +01:00
Thomas Preud'homme 1867515152 [commtech] Remove pipe_comm to produce 50000000 l
Multiply by 10 the number of cache line send from the producer to the
consumer to have a more accurate mean. This require excluding pipe_comm
as this bench is way too slow to send so much data.
2011-01-16 17:27:21 +01:00
Thomas Preud'homme 35a81bb736 [commtech] Place volatile on the right qualifier. 2011-01-13 14:58:13 +01:00
Thomas Preud'homme f8ef047808 Remove obsolete TODO. 2011-01-03 11:40:23 +01:00
Thomas Preud'homme 2d879dc3fc [commtech] Fix idx test in c_cache technique.
c_cache watching status value when idx % BUF_SIZE != 0 instead of when
it's equal zero.
2011-01-03 11:35:42 +01:00
Thomas Preud'homme 9f5fb833d7 [commtech] Remove obsolete pattern for total time. 2011-01-03 11:34:47 +01:00
Thomas Preud'homme 5682581335 [commtech bench] Fix the zero test 2010-10-14 00:01:32 +02:00
Thomas Preud'homme 6c2868e20c [commtech bench] Take the mean over 10 run. 2010-10-13 23:57:58 +02:00
Thomas Preud'homme 006b1b1d94 Simplify and rewrite comm API. 2010-10-01 18:57:46 +02:00
Thomas Preud'homme c5507590aa Default to $CWD in all case in parsing.sh 2010-08-12 05:11:46 +02:00
Thomas Preud'homme 6899dea515 Allow overriding barriereList and commList 2010-05-18 09:34:25 +02:00
Thomas Preud'homme e49eaecf18 Allow specifiying the log directory 2010-05-18 09:34:15 +02:00
Thomas Preud'homme 9af26178ba Add shell options to local function params
This requires to switch from bash to sh
2010-05-18 09:34:12 +02:00
Thomas Preud'homme 55d2d70b6e Only exclude from log data less or equal than 0 2010-05-15 22:32:35 +02:00
Thomas Preud'homme 479b41d262 Put main code in function main() 2010-05-15 19:58:53 +02:00
Thomas Preud'homme b83f592689 Create pdfs in images directory 2010-05-15 19:57:38 +02:00
Thomas Preud'homme fe09f9d2e9 Don't create gnuplot file with no body 2010-05-15 19:46:08 +02:00
Thomas Preud'homme 38c7daee00 Remove remaining references to multicore.gnuplot 2010-05-15 19:25:20 +02:00
Thomas Preud'homme 14d314a7b2 Generate images in images directory 2010-05-15 17:09:41 +02:00
Thomas Preud'homme fde98f1793 Update parsing.sh compatibility to gnuplot 4.4 2010-05-15 16:40:34 +02:00
Thomas Preud'homme ad804e4a5a [comm tech bench] 1 gnuplot per graph
- Refactor parsing.sh to have one gnuplot file per graph
- Change the set style data from lines to linespoints
- Add one title per series of point (one for each every) in dat headers
2010-02-25 17:21:45 +01:00
Thomas Preud'homme baff7d6b6e [Comm tech bench] Some parsing.sh debug
- Correct some gnuplot "every" misuse
- Don't skip 2 lines for useless_loop
- Try to deal with xticlabels => Need a refactoring to have 1 gnuplot
  file per output
2010-02-23 11:35:25 +01:00
Thomas Preud'homme 31a2e59227 histo + lines (only .dat are ready) 2009-07-28 01:16:11 +02:00
Thomas Preud'homme 69417b1cfa Intermediate parsing.sh (1) 2009-07-08 18:58:18 +02:00
Thomas Preud'homme 19ef1d98f2 commtechs: Add bench_ before bench name 2009-07-08 18:42:51 +02:00
Thomas Preud'homme d38f9150b2 commtechs: Make legend looks nicer s/mem/Memory/ 2009-07-08 18:33:32 +02:00
Thomas Preud'homme 5e3a7f6ce0 commtechs: BUGFIX wait threads to be initialized 2009-07-07 16:08:00 +02:00
Thomas Preud'homme 97fb64709f commtech: Add a TODO list 2009-07-07 16:00:51 +02:00
Thomas Preud'homme c99d8be100 commtechs: BUGFIX deadlock in thread init 2009-07-07 15:56:20 +02:00
Thomas Preud'homme 60214d62f0 commtechs: BUGFIX in seq usage 2009-07-07 14:32:22 +02:00
Thomas Preud'homme 06e1331dbb commtechs BUGFIX: wrong varname (nb_useless_loop)
nb_useless_loop has been renamed in argTypeProd but one usage of
nb_useless_loop has remained in lancement.sh
2009-07-06 17:19:15 +02:00
Thomas Preud'homme 3c00b5727e commtech: calc_mat takes 16 as argument 2009-07-01 16:25:36 +02:00
Thomas Preud'homme 698341b99e commtech: Update usage help 2009-07-01 03:10:38 +02:00
Thomas Preud'homme 415004fb4b commtech: Update usage help 2009-07-01 02:45:28 +02:00
Thomas Preud'homme 3341546c75 commtech: calc lib take 1 argument on command line 2009-07-01 02:36:11 +02:00
Thomas Preud'homme 7a1610961c commtech: BUGFIX unwanted optimization
Replace prod += 42 by prod += fourty_two where fourty_two is a volatile
variable to avoid replacement of the loop into a prod += 42 * nb_loop
2009-07-01 02:34:50 +02:00
Thomas Preud'homme 243d8810f1 commtech: avoid a double free corruption
Remove srand and rand function call as they generates double free
corruption (???)
2009-07-01 01:49:16 +02:00
Thomas Preud'homme e90348b54c commtech: BUFFIX in freeing pages
Don't try to free the middle of an allocation
2009-07-01 01:48:13 +02:00
Thomas Preud'homme ba13c18af7 commtech: Free pages when jikes barrier ends 2009-07-01 00:45:19 +02:00
Thomas Preud'homme e04818645a commtech: Add a new calculation method
This calculation performs only a loop and avoid cache pollution
2009-06-30 22:37:55 +02:00
Thomas Preud'homme c98db4b4ba commtech: do_calc() return a void **
This respect what we claim to send to the send() function and allow to
reduce the FAKE_NURSERY_START. Thus we are sure gcc won't optimize the
second part of the if in include/jikes_barrier_comm.h
2009-06-30 22:35:11 +02:00
Thomas Preud'homme 7bfc46db78 commtech: Delete pages free
Pages cannots be freed as fast as they are allocated, so this whole
mecanism can only delay the kernel panic. It's wiser to exit badly if
too much memory is consumed
2009-06-30 22:32:59 +02:00
Thomas Preud'homme a9c71bf5d8 commtechs: Replace the test by a nicer shell trick 2009-06-25 18:00:02 +02:00
Thomas Preud'homme 33614392cd No need to move the set -u 2009-06-25 17:40:42 +02:00
Thomas Preud'homme d646451091 commtechs: We can launch without LD_LIBRARY_PATH 2009-06-25 17:29:44 +02:00
Thomas Preud'homme a29aafe25e Makefile is able to use papi libs not installed 2009-06-25 16:44:46 +02:00
Thomas Preud'homme 6b9777cb9b Align shared_mem and initial jikes buffer 2009-06-25 14:01:18 +02:00
Thomas Preud'homme c9323cd901 BUGFIX: Fix a possible deadlock if an error occurs 2009-06-25 13:47:50 +02:00
Thomas Preud'homme 177e548efe commtechs benchs: fake_comm perform the writes 2009-06-24 23:35:58 +02:00
Thomas Preud'homme 2fe89da8a2 free memory after 100 Mo allocated 2009-06-24 23:26:51 +02:00
Thomas Preud'homme 8f0aecedec comtechs bench: Better management of errors 2009-06-24 22:25:28 +02:00
Thomas Preud'homme 72db76b9fa commtechs bench: Separate bench in 2 benchs 2009-06-24 20:14:50 +02:00
Thomas Preud'homme b58d18cc5d commtechs bench: Add title and legends 2009-06-24 20:14:24 +02:00
Thomas Preud'homme ec4bd91021 commtechs bench: start y at 1 2009-06-24 20:11:58 +02:00
Thomas Preud'homme 74a0065616 commtechs bench: Add execute rights on parsing.sh 2009-06-24 18:28:27 +02:00
Thomas Preud'homme 737056ada1 commtechs bench: Logarithmic metric 2009-06-24 18:27:40 +02:00
Thomas Preud'homme e9dc20ecd8 commtechs bench: time per loop + time per write 2009-06-24 18:18:05 +02:00
Thomas Preud'homme 7177f1c84d Disable debugging info in compilation 2009-06-24 00:53:31 +02:00
Thomas Preud'homme 34faada5fe commtechs: Correctly parse outputs 2009-06-24 00:53:13 +02:00
Thomas Preud'homme 934790a6d9 commtechs bench: Print time information 2009-06-23 14:46:00 +02:00
Thomas Preud'homme bc3c66027b Display total time 2009-06-23 13:10:04 +02:00
Thomas Preud'homme 857a764485 commtechs bench: Add parsing of logs 2009-06-23 12:51:24 +02:00
Thomas Preud'homme f8c2be9478 commtech: -s don't take an argument 2009-06-23 12:31:48 +02:00
Thomas Preud'homme e39c05664a comm lib have their own directory as calc libs 2009-06-23 12:30:49 +02:00
Thomas Preud'homme cc1bde60c9 commtech: Add fake_comm in lancement.sh script 2009-06-23 11:57:25 +02:00
Thomas Preud'homme 7b36e81b40 commtech: Currently no L2 shared needs no -s 2009-06-23 11:56:22 +02:00
Thomas Preud'homme a590ecca09 commtechs bench: calculation init takes an arg 2009-06-19 21:15:23 +02:00
Thomas Preud'homme f4b3904541 commtechs bench: add calc_mat calculation lib
* Add a matrice calculation as one of the possible calculation
* Modify the makefile to permit calculation lib compilation
* Reorganize the makefile to be able to execute the default target
2009-06-19 20:53:34 +02:00
Thomas Preud'homme f9128c0348 commtechs bench: Addresses are calculated 2009-06-19 13:27:08 +02:00
Thomas Preud'homme 037895a73b commtechs bench: Ready to bench
* Add a script to launch all binaries
* add a logclean target to Makefile
* git ignore logs
2009-06-18 22:16:29 +02:00
Thomas Preud'homme dc6cd83ac1 commtechs bench: BUGFIX in options parsing
* nb_prod was tested with nb_cache_lines
* buf_size is unused => removed
* nb_cache_line => nb_bufs_sent
2009-06-18 22:10:15 +02:00
Thomas Preud'homme e3b01f9357 commtechs bench: Reflect changes of papihighlevel
* commit 0ab6aa7576ac5ccdd9d0f99630016a2be87993b3 changed the API of
  print_result
2009-06-18 18:39:42 +02:00
Thomas Preud'homme d8b88b0e7f commtech bench: BUGFIX of initialization
* Initialization can be blocking
2009-06-18 18:33:12 +02:00
Thomas Preud'homme 274f3cfd1b communication techniques bench: refactoring (2)
Main changes:

* Better separation of what is common from what is specific to a
  communication technique
* Consumer wait initialization of all producer threads
2009-06-18 15:55:20 +02:00
Thomas Preud'homme b5575aa710 communication techniques bench: add c_cache_comm 2009-06-17 19:18:38 +02:00
Thomas Preud'homme ebbb03f65e communication techniques bench: BUGFIX
* -s really make the threads to be on a shared cache
2009-06-17 19:12:22 +02:00
Thomas Preud'homme b522ce373f communication techniques bench: typo 2009-06-17 18:22:03 +02:00
Thomas Preud'homme 4cdee1503e communication techniques bench: refactoring (1)
Main changes:
* change library initialization: initialization is done with
  init_library once and init_thread_comm by each thread
* cont is now directly accessed by main
* list of struct communication_assoc -> array of struct thread_comm
* struct communication_channel -> struct comm_channel
2009-06-17 18:15:16 +02:00
Thomas Preud'homme 68589566a7 Communication techniques bench: add fake comm 2009-06-17 15:47:12 +02:00
Thomas Preud'homme 3059605ed4 Communication techniques bench: add jikes barrier 2009-06-17 15:46:22 +02:00
Thomas Preud'homme 0a4da54fec Communication techniques bench: act more like a WB
* Send addresses of place in memory where another addresses has been
  stored
2009-06-16 13:22:08 +02:00
Thomas Preud'homme 85f383fd7d Communication techniques bench: ignore more files
* Ignore specific_comm.h symlink as it changes for each different target
2009-06-16 13:05:14 +02:00
Thomas Preud'homme 09bff9869e communication technique benchs: We send addresses
* uintptr_t -> void *
* main send addresses where it has written something in
2009-06-16 12:58:30 +02:00
Thomas Preud'homme 12494e2fbc More uniformity in communication techniques bench
* Only use 2 * BUF_SIZE bytes for shared_memory
2009-06-12 00:44:52 +02:00
Thomas Preud'homme 02db9b77f6 Bug in communication techniques bench
* prod_idx and cons_idx aren't declared volatile so compiler could
  sur-optimize access to these variable and lead to a deadlock
2009-06-12 00:39:25 +02:00
Thomas Preud'homme 471fdef61e Bug in communication techniques bench
* producers can finish before consumer and thus free the thread-local
  storage they have which could lead to sigsegv from consumer
2009-06-12 00:34:33 +02:00
Thomas Preud'homme e6912c4048 New technique in communication techniques bench
* shared_mem become shared_mem_opt
* Apparition of shared_mem (no optimisation)
2009-06-11 23:42:15 +02:00
Thomas Preud'homme 91c3ce6ca4 Fix in communication techniques bench
* Producers now wait consumer when needed
2009-06-11 23:41:39 +02:00
Thomas Preud'homme 7e939d50da Fix in communication techniques bench
* SHARED_MEM_SPACE is now based on BUF_SIZE
2009-06-11 23:35:41 +02:00
Thomas Preud'homme 44aacb978e Add a naive L2 shared option for comm techs bench 2009-06-10 23:30:24 +02:00
Thomas Preud'homme cc7da2e459 Let the choice of the path to papihighlevel
* Introduce 3 new variables:
  - LOCALDIR: base directory for looking after papihighlevel
  - PAPIHIGHLEVELINCDIR: include directory in $(LOCALDIR)
  - PAPIHIGHLEVELLIBDIR: library directory in $(LOCALDIR)
2009-06-10 11:16:11 +02:00
Thomas Preud'homme 9b4388a964 Add benchs to compare communication techniques 2009-06-10 09:58:50 +02:00