more renaming
This commit was SVN r305.
Этот коммит содержится в:
родитель
938ae7fa39
Коммит
6600fab8f8
25
src/mca/mpi/pml/teg/src/.cvsignore
Обычный файл
25
src/mca/mpi/pml/teg/src/.cvsignore
Обычный файл
@ -0,0 +1,25 @@
|
|||||||
|
Makefile
|
||||||
|
Makefile.in
|
||||||
|
acinclude.m4
|
||||||
|
aclocal.m4
|
||||||
|
configure
|
||||||
|
configure.ac
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
libtool
|
||||||
|
autom4te.cache
|
||||||
|
.libs
|
||||||
|
.deps
|
||||||
|
*.la
|
||||||
|
*.lo
|
||||||
|
.lam*
|
||||||
|
config.guess
|
||||||
|
config.sub
|
||||||
|
depcomp
|
||||||
|
install-sh
|
||||||
|
ltmain.sh
|
||||||
|
missing
|
||||||
|
mkinstalldirs
|
||||||
|
stamp-h1
|
||||||
|
teg_config.h
|
||||||
|
teg_config.h.in
|
24
src/mca/mpi/pml/teg/src/Makefile.am
Обычный файл
24
src/mca/mpi/pml/teg/src/Makefile.am
Обычный файл
@ -0,0 +1,24 @@
|
|||||||
|
# -*- makefile -*-
|
||||||
|
#
|
||||||
|
# $HEADER$
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(top_lam_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
AM_CPPFLAGS = \
|
||||||
|
-I$(top_lam_builddir)/src/include \
|
||||||
|
-I$(top_lam_srcdir)/src \
|
||||||
|
-I$(top_lam_srcdir)/src/include
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libmca_coll_basic.la
|
||||||
|
libmca_coll_basic_la_SOURCES = \
|
||||||
|
pml_teg.c \
|
||||||
|
pml_teg.h \
|
||||||
|
pml_teg_comm.h \
|
||||||
|
pml_teg_isend.c \
|
||||||
|
pml_teg_proc.c \
|
||||||
|
pml_teg_proc.h \
|
||||||
|
pml_teg_ptl_array.c \
|
||||||
|
pml_teg_ptl_array.h \
|
||||||
|
pml_teg_sendreq.c \
|
||||||
|
pml_teg_sendreq.h
|
@ -6,6 +6,8 @@
|
|||||||
#include "lam/constants.h"
|
#include "lam/constants.h"
|
||||||
#include "mca/mpi/ptl/ptl.h"
|
#include "mca/mpi/ptl/ptl.h"
|
||||||
#include "mca/mpi/pml/base/pml_base_sendreq.h"
|
#include "mca/mpi/pml/base/pml_base_sendreq.h"
|
||||||
|
#include "pml_teg.h"
|
||||||
|
#include "pml_teg_proc.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -15,7 +17,7 @@
|
|||||||
* queue for later delivery.
|
* queue for later delivery.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int mca_pml_teg_send_request_start(lam_p2p_send_request_t* req)
|
int mca_pml_teg_send_request_start(mca_pml_base_send_request_t* req)
|
||||||
{
|
{
|
||||||
bool complete;
|
bool complete;
|
||||||
int rc = mca_pml_teg_send_request_schedule(req, &complete);
|
int rc = mca_pml_teg_send_request_schedule(req, &complete);
|
||||||
@ -44,21 +46,21 @@ int mca_pml_teg_send_request_start(lam_p2p_send_request_t* req)
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* complete)
|
int mca_pml_teg_send_request_schedule(mca_pml_base_send_request_t* req, bool* complete)
|
||||||
{
|
{
|
||||||
lam_proc_t *proc = lam_comm_get_remote_proc(
|
lam_proc_t *proc = lam_comm_lookup_peer(req->super.req_communicator, req->super.req_peer);
|
||||||
req->super.req_communicator, req->super.req_peer);
|
mca_pml_proc_t* proc_pml = proc->proc_pml;
|
||||||
|
|
||||||
/* allocate first fragment, if the first PTL in the list
|
/* allocate first fragment, if the first PTL in the list
|
||||||
* cannot allocate resources for the fragment, try the next
|
* cannot allocate resources for the fragment, try the next
|
||||||
* available.
|
* available.
|
||||||
*/
|
*/
|
||||||
if(req->req_frags_allocated == 0) {
|
if(req->req_frags_allocated == 0) {
|
||||||
size_t num_ptl_avail = proc->proc_ptl_first.ptl_size;
|
size_t num_ptl_avail = proc_pml->proc_ptl_first.ptl_size;
|
||||||
size_t i;
|
size_t i;
|
||||||
for(i = 0; i < num_ptl_avail; i++) {
|
for(i = 0; i < num_ptl_avail; i++) {
|
||||||
lam_p2p_ptl_info_t* ptl_info = lam_p2p_ptl_array_get_next(&proc->proc_ptl_first);
|
mca_ptl_info_t* ptl_info = mca_ptl_array_get_next(&proc_pml->proc_ptl_first);
|
||||||
lam_p2p_ptl_t* ptl = ptl_info->ptl;
|
mca_ptl_t* ptl = ptl_info->ptl;
|
||||||
int rc = ptl->ptl_fragment(ptl, req, ptl->ptl_frag_first_size);
|
int rc = ptl->ptl_fragment(ptl, req, ptl->ptl_frag_first_size);
|
||||||
if (rc == LAM_SUCCESS)
|
if (rc == LAM_SUCCESS)
|
||||||
break;
|
break;
|
||||||
@ -66,7 +68,7 @@ int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* compl
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
/* has first fragment been allocated? */
|
/* has first fragment been allocated? */
|
||||||
if(req->p2ps_frags_allocated == 0) {
|
if(req->req_frags_allocated == 0) {
|
||||||
*complete = false;
|
*complete = false;
|
||||||
return LAM_SUCCESS;
|
return LAM_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -74,11 +76,11 @@ int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* compl
|
|||||||
|
|
||||||
/* allocate remaining bytes to PTLs */
|
/* allocate remaining bytes to PTLs */
|
||||||
size_t bytes_remaining = req->req_length - req->req_bytes_fragmented;
|
size_t bytes_remaining = req->req_length - req->req_bytes_fragmented;
|
||||||
size_t num_ptl_avail = proc->proc_ptl_next.ptl_size;
|
size_t num_ptl_avail = proc_pml->proc_ptl_next.ptl_size;
|
||||||
size_t num_ptl = 0;
|
size_t num_ptl = 0;
|
||||||
while(bytes_remaining > 0 && num_ptl++ < num_ptl_avail) {
|
while(bytes_remaining > 0 && num_ptl++ < num_ptl_avail) {
|
||||||
lam_p2p_ptl_info_t* ptl_info = lam_p2p_ptl_array_get_next(&proc->proc_ptl_next);
|
mca_ptl_info_t* ptl_info = mca_ptl_array_get_next(&proc_pml->proc_ptl_next);
|
||||||
lam_p2p_ptl_t* ptl = ptl_info->ptl;
|
mca_ptl_t* ptl = ptl_info->ptl;
|
||||||
|
|
||||||
/* if this is the last PTL that is available to use, or the number of
|
/* if this is the last PTL that is available to use, or the number of
|
||||||
* bytes remaining in the message is less than the PTLs minimum fragment
|
* bytes remaining in the message is less than the PTLs minimum fragment
|
||||||
@ -94,7 +96,7 @@ int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* compl
|
|||||||
* previously assigned)
|
* previously assigned)
|
||||||
*/
|
*/
|
||||||
else {
|
else {
|
||||||
bytes_to_frag = ptl_info->ptl_weight * req->p2ps_length;
|
bytes_to_frag = ptl_info->ptl_weight * req->req_length;
|
||||||
if(bytes_to_frag > bytes_remaining)
|
if(bytes_to_frag > bytes_remaining)
|
||||||
bytes_to_frag = bytes_remaining;
|
bytes_to_frag = bytes_remaining;
|
||||||
}
|
}
|
||||||
@ -102,9 +104,9 @@ int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* compl
|
|||||||
int rc = ptl->ptl_fragment(ptl, req, bytes_to_frag);
|
int rc = ptl->ptl_fragment(ptl, req, bytes_to_frag);
|
||||||
if(rc != LAM_SUCCESS && rc != LAM_ERR_TEMP_OUT_OF_RESOURCE)
|
if(rc != LAM_SUCCESS && rc != LAM_ERR_TEMP_OUT_OF_RESOURCE)
|
||||||
return rc;
|
return rc;
|
||||||
bytes_remaining = req->p2ps_length = req->p2ps_bytes_fragmented;
|
bytes_remaining = req->req_length = req->req_bytes_fragmented;
|
||||||
}
|
}
|
||||||
*complete = (req->p2ps_length == req->p2ps_bytes_fragmented);
|
*complete = (req->req_length == req->req_bytes_fragmented);
|
||||||
return LAM_SUCCESS;
|
return LAM_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +118,8 @@ int mca_pml_teg_send_request_schedule(lam_p2p_send_request_t* req, bool_t* compl
|
|||||||
|
|
||||||
void mca_pml_teg_send_request_push()
|
void mca_pml_teg_send_request_push()
|
||||||
{
|
{
|
||||||
mca_pml_base_send_request_t *req;
|
THREAD_LOCK(&mca_pml_teg.teg_lock);
|
||||||
|
mca_pml_base_send_request_t* req;
|
||||||
for(req = (mca_pml_base_send_request_t*)lam_list_get_first(&mca_pml_teg.teg_incomplete_sends);
|
for(req = (mca_pml_base_send_request_t*)lam_list_get_first(&mca_pml_teg.teg_incomplete_sends);
|
||||||
req != (mca_pml_base_send_request_t*)lam_list_get_end(&mca_pml_teg.teg_incomplete_sends);
|
req != (mca_pml_base_send_request_t*)lam_list_get_end(&mca_pml_teg.teg_incomplete_sends);
|
||||||
req = (mca_pml_base_send_request_t*)lam_list_get_next(req)) {
|
req = (mca_pml_base_send_request_t*)lam_list_get_next(req)) {
|
||||||
@ -129,9 +132,10 @@ void mca_pml_teg_send_request_push()
|
|||||||
}
|
}
|
||||||
if(complete) {
|
if(complete) {
|
||||||
req = (mca_pml_base_send_request_t*)lam_dbl_remove(
|
req = (mca_pml_base_send_request_t*)lam_dbl_remove(
|
||||||
&lam_p2p_sends_incomplete, (lam_list_item_t*)req);
|
&mca_pml_teg.teg_incomplete_sends, (lam_list_item_t*)req);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
THREAD_UNLOCK(&mca_pml_teg.teg_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user