Commit Graph

37 Commits

Author SHA1 Message Date
Thomas Preud'homme 6cdff7f5a0 Add copyright/license information 2013-04-22 18:34:41 +02:00
Thomas Preud'homme d8c16a4aa3 Merge branch 'bqv2_buf_end' 2012-07-07 23:14:15 +02:00
Thomas Preud'homme df09d89933 [commtech] Use only 1 thread per core
Creating 2 thread per core in the purpose of receiving while sending is
plain stupid. First it needs 2 threads synchronizing with each other
which has a cost. Second, since only one thread can run at a time the
threads slow each other (using BatchQueue where the sender is on the
same core as the receiver yields bad performance). This patch remove all
this complexity to have one thread receive, compute and then resend
data, which improve performances dramatically.
2012-07-07 23:14:08 +02:00
Thomas Preud'homme a20c9a8a21 [commtech] BatchQueue v2
Uses 2 mapping to the same structure to avoid prefetching of the
producer semi-buffer by the consumer. The idea is to access everything
through mapping 1 except semi-buffer 2 which is accessed through mapping
2.
2012-01-30 20:09:52 +01:00
Thomas Preud'homme c6786815cd Add native algo from OpenMP stream extension
Add native algorithm from OpenMP stream extension. This require adding
one function in commtech.h: end_producer(). This function does nothing
for all communication algorithm but gomp_stream (the algorithm added by
this commit).
2012-01-30 20:07:11 +01:00
Thomas Preud'homme a30a5bfe06 Make all threads are joined
in join_threads, nb_thread is the id of the last thread, not the number
of threads to join. Hence the for loop must include this id.
2011-06-01 15:35:08 +02:00
Thomas Preud'homme f0c75c7570 SINK thread (not INTERM) notify its termination
Use !!node_param->type & SINK in likely macro to test wether we are a
SINK node or an INTERM node.
2011-06-01 15:25:08 +02:00
Thomas Preud'homme f05cfdcd92 Improve pipeline (cons and prod in //) 2011-05-25 14:33:42 +02:00
Thomas Preud'homme f01db158c2 Use multiples of BUF_SIZE when needed
Number of cache line sent and size of reception buffer must be a
multiple of BUF_SIZE.
2011-05-10 11:14:28 +02:00
Thomas Preud'homme 70f8f95647 Fix option to choose the number of node
Option is now in the getopt string and accessible with -l switch.
2011-05-10 11:00:59 +02:00
Thomas Preud'homme f430cc17a7 Fix bugs coming from refactoring 2011-05-05 19:54:44 +02:00
Thomas Preud'homme 372c36155a Fix incorrect usage string: --check -> -k 2011-05-05 14:52:41 +02:00
Thomas Preud'homme 756a701466 [commtech] Refactor to chain more than 2 nodes
* Refactor the source to be able to chain more than 2 nodes together
* Compile all binaries by default (binList must be set manually in
  lancement.sh to run only a subset of the binaries
2011-05-05 14:34:09 +02:00
Thomas Preud'homme 9c835d4c46 Add a "sent words == received words" check 2011-05-04 19:35:10 +02: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 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 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 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 8f0aecedec comtechs bench: Better management of errors 2009-06-24 22:25:28 +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 34faada5fe commtechs: Correctly parse outputs 2009-06-24 00:53:13 +02:00
Thomas Preud'homme bc3c66027b Display total time 2009-06-23 13:10:04 +02:00
Thomas Preud'homme a590ecca09 commtechs bench: calculation init takes an arg 2009-06-19 21:15:23 +02:00
Thomas Preud'homme f9128c0348 commtechs bench: Addresses are calculated 2009-06-19 13:27:08 +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 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 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 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 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 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 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 44aacb978e Add a naive L2 shared option for comm techs bench 2009-06-10 23:30:24 +02:00
Thomas Preud'homme 9b4388a964 Add benchs to compare communication techniques 2009-06-10 09:58:50 +02:00