Changeset 279


Ignore:
Timestamp:
Nov 24, 2010, 5:44:26 PM (14 years ago)
Author:
coach
Message:

1) Fixed problems with the \CoutHorsD macro.
2) Renamed as \OtherPartner?{debu}{fin}{partener}{moyen-an-1:moyen-an-2:moyen-an-3}.
3) Updated document for using it.
4) Changed the "model use" delivrable.

Location:
anr
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • anr/anr.sty

    r278 r279  
    151151    \let\xilinx\relax
    152152    \immediate\write\ganttdata{%
    153       T=\the\taskcnt\space S=\the\subtaskcnt\space%
     153      L=1 T=\the\taskcnt\space S=\the\subtaskcnt\space%
    154154      D=\the\livrablecnt\space V=\vers\space%
    155155      BM=#1 EM=#2 R=#3 PART={#4} KIND={#5} TITLE=#6%
     
    224224        {\textsc{##4}}%
    225225 }
    226  \def\CoutHorsD##1##2##3##4##5{%
     226 \def\OtherPartner##1##2##3##4{%
    227227    \let\xcoach\relax
    228228    \let\xcoachplus\relax
     
    237237    \let\mds\relax     \let\Smds\relax
    238238    \immediate\write\ganttdata{%
    239       T=\the\taskcnt\space S=\the\subtaskcnt\space%
    240       D=none BM=##1 EM=##2 R=##5 PART={##3} TITLE=##4%
     239      L=0 T=\the\taskcnt\space S=\the\subtaskcnt\space%
     240      D=\the\livrablecnt\space BM=##1 EM=##2 R=##4 PART={##3} TITLE=%
    241241    }
    242242 }
  • anr/gantt.l

    r278 r279  
    5454
    5555typedef struct _Tlivrable {
    56     int tn,stn,dn,vn;  // task, sub-task, number
    5756    char v;            // 0, 1, 2, ..., F
    5857    char* kind;
     
    6059    int   bm,em;       // mois de bebut et de fin
    6160    double hman[3];    // nombre de mh par an
     61    int tn,stn,dn,vn;  // task, sub-task, number
     62    int    leader;     // 1: the partner leads this livrable
     63                       // 0: the partner helps for this livrable
    6264    int    partner;    // index dans partner_table
    6365    // these fields are filled by the program for data[tn][0][0][0]
     
    6769    double nbma[3];          // durée en mois par annee
    6870    // these fields are filled by the program for data[tn][stn][dn][0]
    69     struct _Tlivrable
    70             **vers; // null termiated (vers[i] = &data[tn][stn][dn][i])
    71     int    nbvers;     // nombre de vers
     71    struct _Tlivrable // versions of the livrable
     72            **vers; // null termiated (vers[i] = data[tn][stn][dn][j])
     73                    // this->leader == 1
     74                    // vers[0] = this
     75                    // vers[i]->leadaer == this->leader
     76                    // vers[i]->partner == this->partner
     77    int    nbvers;  // nombre de vers
    7278    double height;     // height of livrable
    7379    // int del_bm,del_em;    // mois de bebut et de fin cummule
     
    7581    int   nbTitleLines;
    7682    char* titleLines[5]; // null termiated
     83    struct _Tlivrable // participant to the livrable
     84            **part; // null termiated (vers[i] = data[tn][stn][dn][j])
     85                    // this->leader == 1
     86                    // vers[i] != this
     87                    // vers[i]->leader ==  0
     88                    // vers[i]->partner != this->partner
     89    int    nbpart;  // nombre de vers
    7790} Tlivrable;
    7891
     
    215228 double an[3];
    216229 char*  an_comment;
     230 int    leader;
    217231 int    partner;
    218232#.*\n   ;
     233L=1       { leader=1; }
     234L=0       { leader=0; }
    219235T=[0-9]+  { tn=atoi(yytext+2); }
    220236S=[0-9]+  { stn=atoi(yytext+2); }
    221237D=[0-9]+  { dn=atoi(yytext+2); }
    222 D=none    { dn=-2; }
    223238V=V[1-8F] { v=yytext[3]; }
    224239ML=[0-9]+ {
     
    282297        p->hman[1] = an[1];
    283298        p->hman[2] = an[2];
     299        p->leader = leader;
    284300        p->partner = partner;
    285301        p->title = title;
     
    297313        an_comment=0;
    298314        partner=0;
     315        leader=0;
    299316    }
    300317[ \t\n] ;
     
    375392void prepare3(Tdata* data)
    376393{
    377 int tn,stn,dn,vn;
     394int tn,stn,dn,vn,cnt;
     395Tlivrable* tmp;
    378396    for (tn=0 ; tn<T_MAX ; tn++)
    379397    for (stn=0; stn<S_MAX; stn++)
     
    382400        if (p==0) continue;
    383401        p->nbvers=0 ;
    384         for (vn=0 ; vn<V_MAX ; vn+=1)
    385             if (data->ls[tn][stn][dn][vn]!=0) p->nbvers+=1;
     402        p->nbpart=0 ;
     403        for (vn=0 ; vn<V_MAX ; vn+=1) {
     404            tmp = data->ls[tn][stn][dn][vn];
     405            if (tmp==0) continue;
     406            if (tmp->leader==0)
     407               p->nbpart+=1;
     408            else
     409                p->nbvers+=1;
     410        }
    386411        p->vers=(Tlivrable**)malloc(sizeof(*p->vers)*(p->nbvers+1));
    387         for (vn=0 ; vn<p->nbvers ; vn+=1) {
    388             p->vers[vn] = data->ls[tn][stn][dn][vn];
    389             data->ls[tn][stn][dn][vn]->nbvers = p->nbvers;
    390         }
    391         p->vers[vn] = 0;
     412        for (vn=0,cnt=0 ; vn<V_MAX ; vn+=1) {
     413            tmp = data->ls[tn][stn][dn][vn];
     414            if (tmp!=0 && tmp->leader==1) {
     415                p->vers[cnt++] = tmp;
     416                tmp->nbvers = p->nbvers;
     417             }
     418        }
     419        p->vers[cnt] = 0;
     420        if (p->nbpart!=0) {
     421            p->part=(Tlivrable**)malloc(sizeof(*p->part)*(p->nbpart+1));
     422            for (vn=0,cnt=0 ; vn<V_MAX ; vn+=1) {
     423                tmp = data->ls[tn][stn][dn][vn];
     424                if (tmp!=0 && tmp->leader==0) {
     425                    p->part[cnt++] = tmp;
     426                 }
     427            }
     428            p->part[cnt] = 0;
     429        }
     430
    392431        p->height = 1.0*DELIVRABLE_HEIGHT;
    393432        if (p->nbTitleLines>=1) {
     
    429468    for (stn=0 ; curr->ls[tn][stn][0][0]!=0 ; stn++)
    430469        for (dn=0 ; curr->ls[tn][stn][dn][0]!=0 ; dn++) {
    431             if ( curr->ls[tn][stn][dn][0]->dn<0 ) continue;
     470            if ( curr->ls[tn][stn][dn][0]->leader==0 ) continue;
    432471            nblivrables += 1;
    433472            height+=curr->ls[tn][stn][dn][0]->height;
     
    635674}
    636675
     676Tlivrable* do_partner_table_getLivrable(Tlivrable** leader, Tlivrable* top, int partner)
     677{
     678    int i;
     679    Tlivrable* ret;
     680    *leader=top->vers[top->nbvers-1];
     681    if (leader[0]->partner==partner)
     682        return *leader;
     683    for (i=0; i<top->nbpart ; i+=1) {
     684        ret= top->part[i];
     685        if ( ret->partner==partner )
     686                return ret;
     687    }
     688    return 0;
     689}
     690
    637691void do_partner_table_full(int partner)
    638692{
     
    662716        for (stn=0; stn<S_MAX; stn++) {
    663717            for (dn=0; dn<D_MAX; dn++) {
     718                Tlivrable *lcurr,*leader;
    664719                Tlivrable* top=curr->ls[tn][stn][dn][v];
    665720                if (top==0) continue;
    666                 Tlivrable* last=top->vers[top->nbvers-1];
    667                 if (last->partner!=partner) continue;
     721                if ( (lcurr=do_partner_table_getLivrable(&leader,top,partner))==0 )
     722                    continue;
    668723                double sum1,sum2,sum3,sum=0;
    669                 sum1 = last->hman[0]; sum +=sum1;
    670                 sum2 = last->hman[1]; sum +=sum2;
    671                 sum3 = last->hman[2]; sum +=sum3;
     724                sum1 = lcurr->hman[0]; sum +=sum1;
     725                sum2 = lcurr->hman[1]; sum +=sum2;
     726                sum3 = lcurr->hman[2]; sum +=sum3;
    672727                char label[1000],title[1000];
    673                 gen_label_base(label,last);
    674                 sprintf(title,"\\resstablestyletitle{%s}",last->title);
     728                gen_label_base(label,leader);
     729                sprintf(title,"\\resstablestyletitle{%s}",leader->title);
    675730                fprintf(curr->os,"%s & %s & %2.1f & %2.1f & %2.1f & %2.1f \\\\\\hline\n",
    676731                   label,title,sum1,sum2,sum3,sum);
     
    680735                an  += sum  ; tsk  += sum  ;
    681736                newlineadded=0;
    682                 if ( sum1==0 && last->nbma[0]!=0)
     737                if ( sum1==0 && leader->nbma[0]!=0)
    683738                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 1 (in table=%2.1f, in gantt=%2.1f\n",
    684                         part->name,label,sum1,last->nbma[0]);
    685                 else if (sum1!=0 && last->nbma[0]==0 )
     739                        part->name,label,sum1,leader->nbma[0]);
     740                else if (sum1!=0 && leader->nbma[0]==0 )
    686741                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 1 (in table=%2.1f, in gantt=%2.1f\n",
    687                         part->name,label,sum1,last->nbma[0]);
    688                 else if (sum1!=0 && sum1>last->nbma[0] )
     742                        part->name,label,sum1,leader->nbma[0]);
     743                else if (sum1!=0 && sum1>leader->nbma[0] )
    689744                    fprintf(stderr,"WARNING: %-10s:%s probleme sur l'an 1 (in table=%2.1f, in gantt=%2.1f\n",
    690                         part->name,label,sum1,last->nbma[0]);
    691                 if ( sum2==0 && last->nbma[1]!=0)
     745                        part->name,label,sum1,leader->nbma[0]);
     746                if ( sum2==0 && leader->nbma[1]!=0)
    692747                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 2 (in table=%2.1f, in gantt=%2.1f\n",
    693                         part->name,label,sum2,last->nbma[1]);
    694                 else if ( sum2!=0 && last->nbma[1]==0)
     748                        part->name,label,sum2,leader->nbma[1]);
     749                else if ( sum2!=0 && leader->nbma[1]==0)
    695750                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 2 (in table=%2.1f, in gantt=%2.1f\n",
    696                         part->name,label,sum2,last->nbma[1]);
    697                 else if (sum2!=0 && sum2>last->nbma[1])
     751                        part->name,label,sum2,leader->nbma[1]);
     752                else if (sum2!=0 && sum2>leader->nbma[1])
    698753                    fprintf(stderr,"WARNING: %-10s:%s probleme sur l'an 2 (in table=%2.1f, in gantt=%2.1f\n",
    699                         part->name,label,sum2,last->nbma[1]);
    700                 if ( sum3==0 && last->nbma[2]!=0)
     754                        part->name,label,sum2,leader->nbma[1]);
     755                if ( sum3==0 && leader->nbma[2]!=0)
    701756                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 3 (in table=%2.1f, in gantt=%2.1f\n",
    702                         part->name,label,sum3,last->nbma[2]);
    703                 else if ( sum3!=0 && last->nbma[2]==0)
     757                        part->name,label,sum3,leader->nbma[2]);
     758                else if ( sum3!=0 && leader->nbma[2]==0)
    704759                    fprintf(stderr,"ERROR:   %-10s:%s probleme sur l'an 3 (in table=%2.1f, in gantt=%2.1f\n",
    705                         part->name,label,sum3,last->nbma[2]);
    706                 else if (sum3!=0 && sum3>last->nbma[2])
     760                        part->name,label,sum3,leader->nbma[2]);
     761                else if (sum3!=0 && sum3>leader->nbma[2])
    707762                    fprintf(stderr,"WARNING: %-10s:%s probleme sur l'an 3 (in table=%2.1f, in gantt=%2.1f\n",
    708                         part->name,label,sum3,last->nbma[2]);
     763                        part->name,label,sum3,leader->nbma[2]);
    709764            }
    710765        }
     
    749804        for (stn=0; stn<S_MAX; stn++) {
    750805            for (dn=0; dn<D_MAX; dn++) {
     806                Tlivrable *lcurr,*leader;
    751807                Tlivrable* top=curr->ls[tn][stn][dn][v];
    752808                if (top==0) continue;
    753                 Tlivrable* last=top->vers[top->nbvers-1];
    754                 if (last->partner!=partner) continue;
     809                if ( (lcurr=do_partner_table_getLivrable(&leader,top,partner))==0 )
     810                    continue;
    755811                double sum1,sum2,sum3,sum=0;
    756                 sum1 = last->hman[0]; sum +=sum1;
    757                 sum2 = last->hman[1]; sum +=sum2;
    758                 sum3 = last->hman[2]; sum +=sum3;
     812                sum1 = lcurr->hman[0]; sum +=sum1;
     813                sum2 = lcurr->hman[1]; sum +=sum2;
     814                sum3 = lcurr->hman[2]; sum +=sum3;
    759815                an1 += sum1 ; tsk1 += sum1 ;
    760816                an2 += sum2 ; tsk2 += sum2 ;
     
    763819                newlineadded=0;
    764820                char label[1000];
    765                 gen_label_base(label,last);
     821                gen_label_base(label,leader);
    766822            }
    767823        }
     
    829885            Tlivrable* l = curr->ls[tn][stn][dn][v];
    830886            if ( l==0 ) break;
    831             if ( l->dn<0 ) continue;
     887            if ( l->leader==0 ) continue;
    832888            char label[1000],resp[100],date[100],kind[100],desc[1000];
    833889            gen_label_full(label,l);
  • anr/task-0.tex

    r278 r279  
    2222  \subtask{Consortium agreement} This \ST consists in writing and ratifying the consortium agreement.
    2323    \begin{livrable}
    24       \CoutHorsD{0}{36}{\Subs}{project management}{1:1:1}
    2524    \itemL{0}{6}{d}{\Smds}{Consortium agreement}{1:0:0}
    2625        A document describing the consortium agreement, signed by all the partners.
     
    2928    organization of the project at all the levels.
    3029    \begin{livrable}
    31       \itemL{0}{36}{d}{\Smds}{Global management}{1:1:1}
     30      \itemL{0}{36}{d}{\Smds}{Global project management}{1:1:1}
    3231        Global management of the project at all the
    3332        levels: progress monitoring, record keeping, meeting organization, review
     
    3837    project meetings and the communication with the project leader and the other partners.
    3938    \begin{livrable}
    40       \itemL{0}{36}{}{\Supmc}{\upmc management}{1:1:1} Project management at the partner level.
    41       \CoutHorsD{0}{36}{\Stima}{project management}{1:1:1}
     39      \itemL{0}{36}{}{\mds}{Local project management}{.5:.5:.5} Project management at the partner level.
     40      \OtherPartner{0}{36}{\Supmc}{.5:.5:.5}
     41      \OtherPartner{0}{36}{\Subs} {.5:.5:.5}
     42      \OtherPartner{0}{36}{\Stima}{.5:.5:.5}
     43      \OtherPartner{0}{36}{\Slip} {.5:.5:.5}
    4244    \end{livrable}
    4345  \subtask{Setup of dissemination infrastructure}
     
    5355        infrastructure (adding \& suppressing account, retrieving forgotten passwords,
    5456        creation and closing development branch, ...)
    55       \CoutHorsD{0}{36}{\Slip}{project management}{1:1:1}
    5657    \end{livrable}
    5758\end{workpackage}
  • anr/task-1.tex

    r278 r279  
    1717    specifying: how to feed COACH (the inputs), how to use COACH (use model),
    1818    what is generated (the outputs).
    19     %(definition of the generic architecture of the
    20     %MPSoC and its 3 targets hardware mapping).
    2119    \begin{livrable}
    22       \CoutHorsD{0}{12}{\Sbull}{User specification}{3:0:0}
    23     \itemV{0}{6}{d}{\Supmc}{COACH specification} \setMacroInAuxFile{specGenManualI}
    24         The first version of the COACH specification.
    25         This document contains the general description of the framework, the use model and the
    26         description of the architectural templates.
    27         It refers to the HAS specification (deliverable {\specHasManual}) and
    28         to the CSG specifcation (deliverable \specCsgManual) for the COACH input
    29         descriptions.
    30     \itemL{6}{12}{d}{\Supmc}{COACH specification}{1:0:0} \setMacroInAuxFile{specGenManual}
    31         The final version of the {\specGenManualI} deliverable updated with the first
    32             feed-backs of the demonstrator \STs.
    33     \itemV{0}{6}{d}{\Stima}{CSG specification} \setMacroInAuxFile{specCsgManualI}
    34         The first version of the CSG (COACH System Generator) specification.
    35         It specifies how the task graph is described, the communication schemes and its
    36         associated API (Application  Programming Interface).
    37         The base is the SRL library and the MWMR communication component defined by the SocLib
    38         ANR project.
    39         Nevertheless, these basic schemes will be enhanced to allow more efficient
    40         synthesis.
    41     \itemL{6}{12}{d}{\Stima}{CSG specification}{1:0:0} \setMacroInAuxFile{specCsgManual}
    42         The final version of the {\specGenManualI} deliverable updated with the first
    43             feed-backs of the demonstrator \STs.
    44     \itemV{0}{6}{d}{\Subs}{HAS specification} \setMacroInAuxFile{specHasManualI}
    45         The first version of the HAS (Hardware Accelerator Synthesis) specification.
    46         It specifies how tasks must be written (C/C++ subset) and how
    47         communication schemes defined in the {\specCsgManual} deliverable must be described for
    48         coprocessor synthesis.
    49     \itemL{6}{12}{d}{\Subs}{HAS specification}{2:0:0} \setMacroInAuxFile{specHasManual}
    50         The final version of the {\specGenManualI} deliverable updated with the first
    51             feed-backs of the demonstrator \STs.
     20    \itemV{0}{6}{d}{\Supmc}{Use model specification}
     21        This document describes the use modle of COACH. It will be a cooperative work.
     22        Its main parts are:
     23        \begin{description}
     24          \item[General overview] (\Supmc)
     25          \item[CSG specification] (\Stima)
     26            Here the COACH System Generator Generator is specified:
     27            how the task graph is described, the communication schemes and
     28            its associated API (Application  Programming Interface).
     29            The base is the SRL library and the MWMR communication component defined
     30            by the SocLib ANR project.
     31            Nevertheless, these basic schemes will be enhanced to allow more efficient
     32            synthesis.
     33          \item[HAS specification] (\Subs)
     34            This part focuses to the Hardware Accelerator Synthesis.
     35            It specifies how tasks must be written (C/C++ subset) and how
     36            communication schemes must be described for coprocessor synthesis.
     37        \end{description}
     38    \itemL{6}{12}{d}{\Supmc}{Use model specification}{3:0:0}
     39        \setMacroInAuxFile{useModelSpecification}
     40        The final version of the Use model specification enhanced
     41        with the feed-backs of the demonstrator \STs.
     42        \OtherPartner{0}{12}{\Slip}   {2:0:0}
     43        \OtherPartner{0}{12}{\Sirisa} {2:0:0}
     44        \OtherPartner{0}{12}{\Stima}  {3:0:0}
     45        \OtherPartner{0}{12}{\Subs}   {3:0:0}
     46        \OtherPartner{0}{12}{\Sbull}  {2:0:0}
     47        \OtherPartner{0}{12}{\Sthales}{2:0:0}
     48        \OtherPartner{0}{12}{\Smds}   {2:0:0}
     49%   \itemV{0}{6}{d}{\Supmc}{Use model specification} \setMacroInAuxFile{specGenManualI}
     50%       The first version of the COACH specification.
     51%       This document contains the general description of the framework, the use model and the
     52%       description of the architectural templates.
     53%       It refers to the HAS specification (deliverable {\specHasManual}) and
     54%       to the CSG specifcation (deliverable \specCsgManual) for the COACH input
     55%       descriptions.
     56%   \itemL{6}{12}{d}{\Supmc}{COACH specification}{1:0:0} \setMacroInAuxFile{specGenManual}
     57%       The final version of the {\specGenManualI} deliverable updated with the first
     58%       feed-backs of the demonstrator \STs.
     59%       \OtherPartner{0}{12}{\Sbull}  {3:0:0}
     60%       \OtherPartner{0}{12}{\Sthales}{1:0:0}
     61%   \itemV{0}{6}{d}{\Stima}{CSG specification} \setMacroInAuxFile{specCsgManualI}
     62%       The first version of the CSG (COACH System Generator) specification.
     63%       It specifies how the task graph is described, the communication schemes and its
     64%       associated API (Application  Programming Interface).
     65%       The base is the SRL library and the MWMR communication component defined by the SocLib
     66%       ANR project.
     67%       Nevertheless, these basic schemes will be enhanced to allow more efficient
     68%       synthesis.
     69%   \itemL{6}{12}{d}{\Stima}{CSG specification}{1:0:0} \setMacroInAuxFile{specCsgManual}
     70%       The final version of the {\specGenManualI} deliverable updated with the first
     71%       feed-backs of the demonstrator \STs.
     72%   \itemV{0}{6}{d}{\Subs}{HAS specification} \setMacroInAuxFile{specHasManualI}
     73%       The first version of the HAS (Hardware Accelerator Synthesis) specification.
     74%       It specifies how tasks must be written (C/C++ subset) and how
     75%       communication schemes defined in the {\specCsgManual} deliverable must be described for
     76%       coprocessor synthesis.
     77%   \itemL{6}{12}{d}{\Subs}{HAS specification}{2:0:0} \setMacroInAuxFile{specHasManual}
     78%       The final version of the {\specGenManualI} deliverable updated with the first
     79%       feed-backs of the demonstrator \STs.
    5280    \end{livrable}
    5381\subtask{Internal software structure}
     
    5583    document listing all the COACH software components and how they cooperate.
    5684    \begin{livrable}
    57       \CoutHorsD{0}{12}{\Sthales}{User specification}{1:0:0}
    5885    \itemL{0}{6}{d}{\Supmc}{COACH internal \ganttlf software architecture}{1:0:0}
    5986        Description of the software list and the data flow among the tools.
  • anr/task-6.tex

    r278 r279  
    2525      \itemV{6}{12}{x}{\Sbull}{\bull demonstrator}
    2626        The deliverable is the specification of the demonstrator in COACH input format
    27         defined in the {\specGenManual} deliverable.
     27        defined in the \novers{\useModelSpecification} deliverable.
    2828      \itemL{12}{36}{d}{\Sbull}{\bull demonstrator}{2:6:10}
    2929        Validation of the demonstrator, the deliverable is a document
  • anr/task-7.tex

    r278 r279  
    3636        final releases with their installation manuals and to publish then into the WEB
    3737        site.
    38       \CoutHorsD{12}{36}{\Stima}{dissemination}{0:2:1}
     38      \OtherPartner{12}{36}{\Stima}{0:2:1}
    3939    \end{livrable}
    4040  \subtask{\mustbecompleted{TITLE}}
     
    7373        This user manual shows how a task can be synthesized by using HLS tools developped in
    7474                the COACH project.
    75       \CoutHorsD{12}{36}{\Subs}{dissemination}{0:2:2}
     75      \OtherPartner{12}{36}{\Subs}{0:2:2}
    7676   \end{livrable}
    7777\end{workpackage}
Note: See TracChangeset for help on using the changeset viewer.