Changeset 27459


Ignore:
Timestamp:
12/09/22 02:53:01 (2 years ago)
Author:
bdef
Message:

Fixing a MPI issue arrising on UiB Saga

Location:
issm/trunk-jpl/src/c/classes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r27429 r27459  
    14801480   xDelete<IssmDouble>(recv_buffer);
    14811481   for(int rank=0;rank<num_procs;rank++){
    1482       if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
    1483       xDelete<IssmDouble>(send_buffers[rank]);
     1482                if(this->vertices->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
     1483                xDelete<IssmDouble>(send_buffers[rank]);
    14841484   }
    14851485   xDelete<IssmDouble*>(send_buffers);
     
    15281528        /*Wait until MPI is done*/
    15291529        for(int rank=0;rank<num_procs;rank++){
    1530                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     1530                if(this->vertices->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    15311531        }
    15321532
     
    15611561        xDelete<IssmDouble>(recv_buffer);
    15621562        for(int rank=0;rank<num_procs;rank++){
    1563                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     1563                if(this->vertices->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    15641564                xDelete<IssmDouble>(send_buffers[rank]);
    15651565        }
     
    16241624        xDelete<IssmDouble>(recv_buffer);
    16251625        for(int rank=0;rank<num_procs;rank++){
    1626                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     1626                if(this->nodes->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    16271627                xDelete<IssmDouble>(send_buffers[rank]);
    16281628        }
     
    16701670                basin_icefront_area[basin]=total_icefront_area;
    16711671        }
    1672        
     1672
    16731673        this->parameters->AddObject(new DoubleVecParam(FrontalForcingsBasinIcefrontAreaEnum,basin_icefront_area,numbasins));
    16741674
  • issm/trunk-jpl/src/c/classes/Nodes.cpp

    r27384 r27459  
    210210        xDelete<int>(recv_truedofs);
    211211        for(int rank=0;rank<num_procs;rank++){
    212                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     212                if(this->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    213213                xDelete<int>(send_truedofs[rank]);
    214214        }
     
    299299        xDelete<int>(recv_truepids);
    300300        for(int rank=0;rank<num_procs;rank++){
    301                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     301                if(this->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    302302                xDelete<int>(send_truepids[rank]);
    303303        }
     
    505505        /*Now send and receive ug for nodes on partition edge*/
    506506        IssmDouble **send_buffers = xNewZeroInit<IssmDouble*>(num_procs);
    507         IssmDouble  *recv_buffer  = xNewZeroInit<IssmDouble>(this->Size()*maxdofspernode,"t"); 
     507        IssmDouble  *recv_buffer  = xNewZeroInit<IssmDouble>(this->Size()*maxdofspernode,"t");
    508508        ISSM_MPI_Request  *send_requests = xNew<ISSM_MPI_Request>(num_procs);
    509509        for (int rank = 0;rank<num_procs;rank++) send_requests[rank] = ISSM_MPI_REQUEST_NULL;
     
    536536        xDelete<IssmDouble>(recv_buffer);
    537537        for(int rank=0;rank<num_procs;rank++){
    538                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     538                if(this->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    539539                xDelete<IssmDouble>(send_buffers[rank]);
    540540        }
  • issm/trunk-jpl/src/c/classes/Vertices.cpp

    r27384 r27459  
    262262        xDelete<int>(recv_truepids);
    263263        for(int rank=0;rank<num_procs;rank++){
    264                 if(rank!=my_rank) ISSM_MPI_Wait(&send_requests[rank],&status);
     264                if(this->common_send[rank]) ISSM_MPI_Wait(&send_requests[rank],&status);
    265265                xDelete<int>(send_truepids[rank]);
    266266        }
Note: See TracChangeset for help on using the changeset viewer.