ejr / matchpres (public) (License: BSD) (since 2018-08-29) (hash sha1)
Ye olde thesis code implementing an auction-based weighted bipartite matching algorithm over MPI.
List of commits:
Subject Hash Author Date (UTC)
Count 'give' calls. e9ec0f943b2141c05dd19d0b0de4b3e956dfb0ea Visiteur Algo 2 2008-12-15 09:41:19
Fix callgrind instrumentation. cd70cf99197c1c27294eb943a24b318a547ca11a Visiteur Algo 2 2008-12-15 09:40:42
Clamp relative mu_min to eps. d995181f9716419508d0276dd9914e7daeccb69b Jason Riedy 2006-02-23 22:58:16
Add (necessary) paranoia about bid+mu==bid. e7fa29ba64ddbd1ebf22b9926d220fee0574f5ff Jason Riedy 2006-02-23 22:57:56
Use gcc-4.0 4b47d644bd9cc78de467e610cacfcc668c3b5570 Jason Riedy 2006-02-23 19:35:59
Dump ent and diag type to stdout as well. 35870ff529230efd7877eb133e55d27ebf1f4943 Jason Riedy 2006-02-23 19:11:42
Select int/float, sum/prod at run-time; add those+nstats to output. 8f9d7d47e8b6516fad0716e6c756c027d4073c66 Jason Riedy 2006-02-23 19:01:13
Little cleanups 97b622070c66a8aded98e4e02feb860021dfaa06 Jason Riedy 2005-04-25 21:56:10
Dumb bug fix: use all_pg and not pg after allreduce. c9aada3d4ea3cd354a27df2c91cdb5e022a48dcd Jason Riedy 2005-04-25 21:36:49
"Optimized" seaborg build, plus it has MPI memory allocation 010c31532fbdd08ebf50815f4223719e06cc0ea1 Jason Riedy 2005-04-25 20:53:30
Fix parallel mu_min computation. 1839c8967c53b5e7311406a4c8e630975b15ca64 Jason Riedy 2005-04-25 20:49:10
More home makefile twiddles d8237ea380793307781f78f155244fffbc6e1065 Jason Riedy 2005-04-25 19:12:57
Add relative gap termination criteria to parallel matchers. 4df0541dc376888d74a22b5770871cb90c1c2f70 Jason Riedy 2005-04-25 18:44:20
Add Make.inc for home 55087d06413e6a59d1c3b41294126cd56f6d46b7 Jason Riedy 2005-04-25 18:10:22
Add Make.seaborg 66fe7a0f65ad57d1fffeeb8db2e614f38cf6cbc0 Jason Riedy 2005-04-25 18:10:06
Move Make.inc out of the way a6aca26e1d6cfb15faa570d63890a20798df3444 Jason Riedy 2005-04-20 20:23:50
Fix price => scaling transformation 1c223b72d65972e9b381e576b90934c40d555e27 Jason Riedy 2005-04-20 20:22:12
Bugs go poo a136075289af1e672e28187cf41210a5ec27eccc Jason Riedy 2005-04-20 02:22:32
More data: primal, dual, duration 2c59b3bdc4789035f919ce2132f2d20e33884329 Jason Riedy 2005-04-18 18:20:44
Removed mistaken Acopy 8af95560220c3dd532eba9efa95b6993a0bedf97 Jason Riedy 2005-04-18 05:07:13
Commit e9ec0f943b2141c05dd19d0b0de4b3e956dfb0ea - Count 'give' calls.
Author: Visiteur Algo 2
Author date (UTC): 2008-12-15 09:41
Committer name: Visiteur Algo 2
Committer date (UTC): 2008-12-15 09:41
Parent(s): cd70cf99197c1c27294eb943a24b318a547ca11a
Signing key:
Tree: 55688c9eab875354f78a7e301faef33f7d258ff9
File Lines added Lines deleted
parauction.c 9 0
parauction_allgather.c 6 0
parauction_allreduce.c 6 0
parauction_root.c 6 0
stripe_auction.c 4 0
writebin.m 1 1
File parauction.c changed (mode: 100644) (index 0673d17..4d6923f)
... ... comm_get_changes (struct comm_state_t *state, MPI_Comm comm,
121 121 state->cbuf_entry_type, state->cbuf_entry_type,
122 122 state->recv_neighbor, phase, state->recv_neighbor, phase,
123 123 comm, &state->req[0]); comm, &state->req[0]);
124 /*fprintf (stderr, "get changes: %d sending to %d\n", rank, state->send_neighbor);*/
124 125 MPI_Isend (state->sendbuf, state->n_to_send, MPI_Isend (state->sendbuf, state->n_to_send,
125 126 state->cbuf_entry_type, state->cbuf_entry_type,
126 127 state->send_neighbor, phase, comm, &state->req[1]); state->send_neighbor, phase, comm, &state->req[1]);
 
... ... comm_give_changes (struct comm_state_t *state, const struct gcsr_t *gA,
295 296 /*const int lnind = gA->rowmap.lnind;*/ /*const int lnind = gA->rowmap.lnind;*/
296 297
297 298 int k; int k;
299 extern int comm_ngives;
298 300
299 301 if (infeasible) { /* infeasible */ if (infeasible) { /* infeasible */
300 302 state->n_to_send = 1; state->n_to_send = 1;
 
... ... comm_give_changes (struct comm_state_t *state, const struct gcsr_t *gA,
325 327 state->cbuf_entry_type, state->cbuf_entry_type,
326 328 state->recv_neighbor, 0, state->recv_neighbor, 0,
327 329 comm, &state->req[0]); comm, &state->req[0]);
330 /*fprintf (stderr, "give changes: %d sending to %d\n", rank, state->send_neighbor);*/
328 331 MPI_Isend (state->sendbuf, state->n_to_send, MPI_Isend (state->sendbuf, state->n_to_send,
329 332 state->cbuf_entry_type, state->cbuf_entry_type,
330 333 state->send_neighbor, 0, comm, &state->req[1]); state->send_neighbor, 0, comm, &state->req[1]);
 
... ... main (int argc, char **argv)
773 776 #endif #endif
774 777 } }
775 778
779 {
780 int gcomm = -1;
781 extern int comm_ngives;
782 MPI_Reduce (&comm_ngives, &gcomm, 1, MPI_INT, MPI_MAX, 0, comm);
783 if (am_root) printf ("Max number of gives: %d\n", gcomm);
784 }
776 785
777 786 /* ------------ */ /* ------------ */
778 787 gcsr_free (&gA, comm); gcsr_free (&gA, comm);
File parauction_allgather.c changed (mode: 100644) (index a343a1d..ef8e440)
... ... main (int argc, char **argv)
758 758 #endif #endif
759 759 } }
760 760
761 {
762 int gcomm = -1;
763 extern int comm_ngives;
764 MPI_Reduce (&comm_ngives, &gcomm, 1, MPI_INT, MPI_MAX, 0, comm);
765 if (am_root) printf ("Max number of gives: %d\n", gcomm);
766 }
761 767
762 768 /* ------------ */ /* ------------ */
763 769 gcsr_free (&gA, comm); gcsr_free (&gA, comm);
File parauction_allreduce.c changed (mode: 100644) (index 61bc5c9..c9de6fd)
... ... main (int argc, char **argv)
577 577 #endif #endif
578 578 } }
579 579
580 {
581 int gcomm = -1;
582 extern int comm_ngives;
583 MPI_Reduce (&comm_ngives, &gcomm, 1, MPI_INT, MPI_MAX, 0, comm);
584 if (am_root) printf ("Max number of gives: %d\n", gcomm);
585 }
580 586
581 587 /* ------------ */ /* ------------ */
582 588 gcsr_free (&gA, comm); gcsr_free (&gA, comm);
File parauction_root.c changed (mode: 100644) (index 8eed43a..02ce596)
... ... main (int argc, char **argv)
750 750 #endif #endif
751 751 } }
752 752
753 {
754 int gcomm = -1;
755 extern int comm_ngives;
756 MPI_Reduce (&comm_ngives, &gcomm, 1, MPI_INT, MPI_MAX, 0, comm);
757 if (am_root) printf ("Max number of gives: %d\n", gcomm);
758 }
753 759
754 760 /* ------------ */ /* ------------ */
755 761 gcsr_free (&gA, comm); gcsr_free (&gA, comm);
File stripe_auction.c changed (mode: 100644) (index fa40e40..4344501)
13 13 #include "auction.h" #include "auction.h"
14 14 #include "stripe_auction.h" #include "stripe_auction.h"
15 15
16 int comm_ngives = 0;
17
16 18 void void
17 19 stripe_auction_shift (const struct gcsr_t *gA, double *b, MPI_Comm comm) stripe_auction_shift (const struct gcsr_t *gA, double *b, MPI_Comm comm)
18 20 { {
 
... ... stripe_auction_simple (const struct gcsr_t *gA, const double *lb,
248 250 */ */
249 251
250 252 /*fprintf (stderr, "%d: giving %d changes\n", rank, n_changes);*/ /*fprintf (stderr, "%d: giving %d changes\n", rank, n_changes);*/
253 ++comm_ngives;
251 254 comm_give_changes (comm_state, gA, n_unmatched, comm_give_changes (comm_state, gA, n_unmatched,
252 255 n_changes, changed_col_list, col_changed_flag, n_changes, changed_col_list, col_changed_flag,
253 256 lmatch, lprice, comm); lmatch, lprice, comm);
 
... ... stripe_auction_scaling (const struct gcsr_t *gA, const double *lb_in,
429 432 #endif #endif
430 433
431 434 /*fprintf (stderr, "%d, %d: giving %d changes\n", rank, pass, n_changes);*/ /*fprintf (stderr, "%d, %d: giving %d changes\n", rank, pass, n_changes);*/
435 ++comm_ngives;
432 436 comm_give_changes (comm_state, gA, n_unmatched, comm_give_changes (comm_state, gA, n_unmatched,
433 437 n_changes, changed_col_list, col_changed_flag, n_changes, changed_col_list, col_changed_flag,
434 438 lmatch, lprice, comm); lmatch, lprice, comm);
File writebin.m changed (mode: 100644) (index 9643894..5563c2f)
... ... function writebin(A, pattern, fname)
39 39 jp = jp - 1; jp = jp - 1;
40 40
41 41 if (off(nr+1) ~= length(ep)), if (off(nr+1) ~= length(ep)),
42 error 'Screwed up.'
42 error ('Screwed up.');
43 43 end end
44 44
45 45 fwrite(fid, off, 'int32'); fwrite(fid, off, 'int32');
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/ejr/matchpres

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/ejr/matchpres

Clone this repository using git:
git clone git://git.rocketgit.com/user/ejr/matchpres

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main