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 4914b0dcdd Add CSQ (2/1) and CSQ (2/32), Del CSQ (2/2) 2012-03-27 00:31:16 +02:00
Thomas Preud'homme a80decaef4 [commtech] Provide 64 cache lines version of algos
* Provide for BatchQueue, CSQ, FastForward, MCRingBuffer and GOMP stream
  a version using 64 cache lines in total for all buffers.
* Rename common version from _common_comm.h to _common.h to avoid
  considering them as communication technique on their own
2012-03-26 16:44:30 +02:00
Thomas Preud'homme 5840b57937 [commtech] Provide more CSQ configs
* Rename CSQ configs to csq_<nbr_buffers>_<size_buffer>_comm.h
* Add several configs
* Default config is csq_comm.h
2012-03-20 11:07:05 +01:00
Thomas Preud'homme f9aa3b227a CSQ's article suggest SUB_SLOTS should be 64. 2012-03-19 20:40:13 +01:00
Thomas Preud'homme 7c4a484989 [commtech] Simplify if's in send()
Test sender_ptr against the end of the current buffer via
channel->sender_ptr_end
2012-01-30 20:14:22 +01: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 bd7379e73a Propose 2048 and 4096 buffer size for BatchQueue. 2011-05-27 15:42:40 +02:00
Thomas Preud'homme f05cfdcd92 Improve pipeline (cons and prod in //) 2011-05-25 14:33:42 +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 5d71bc53f1 [commtech] Varying size of buffer for BatchQueue
Create several variation of BatchQueue, each with a different buffer
size: batch_queue_1024, batch_queue_512, ..., batch_queue_2.
2011-05-05 11:30:00 +02:00
Thomas Preud'homme 023552a4de [commtech] Prevent prefetch in batch queue
Prevent prefetch of state variable in BatchQueue by adding padding
between the buffers and state variable.
2011-03-02 13:19:22 +01:00
Thomas Preud'homme 22c97ab418 [commtech] Make BUF_SIZE definition be per tech
Don't define BUF_SIZE globally anymore, but per communication technique
2011-03-02 13:19:22 +01:00
Thomas Preud'homme 7c515200e7 [commtech] Remove asm_cache from the comm techs 2011-03-02 13:19:22 +01:00
Thomas Preud'homme 90b7a8007b [commtech] Rename c_cache to batch_queue 2011-03-02 13:19:22 +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 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 35a81bb736 [commtech] Place volatile on the right qualifier. 2011-01-13 14:58:13 +01:00
Thomas Preud'homme 006b1b1d94 Simplify and rewrite comm API. 2010-10-01 18:57:46 +02:00
Thomas Preud'homme 177e548efe commtechs benchs: fake_comm perform the writes 2009-06-24 23:35:58 +02:00
Thomas Preud'homme 8f0aecedec comtechs bench: Better management of errors 2009-06-24 22:25:28 +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 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 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 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 9b4388a964 Add benchs to compare communication techniques 2009-06-10 09:58:50 +02:00