void init_env(t_env *e) { int i; struct rlimit rlp; i = 0; if (getrlimit(RLIMIT_NOFILE, &rlp) < 0) { ft_putendl("getrlimit error"); exit(-1); } e->maxfd = rlp.rlim_cur; e->fds = (t_fd*)malloc(sizeof(*e->fds) * e->maxfd); if (e->fds == NULL) { ft_putendl("malloc error"); exit(-1); } while (i < e->maxfd) { init_fd(&e->fds[i]); i++; } }
void test_vs_n(){ int n_set[] = {10000,20000,30000,40000,50000, 60000}; int dim = 1000; int k = 10; int exp_no = 6; int nnz = 100; int ell = 50; double start, end, cpu_time_used; SparseMatrix A; SparseVector arr[60000]; SparseSketcher sfd; FrequentDirections fd; double sfd_cov_err[exp_no], sfd_proj_err[exp_no], sfd_time[exp_no]; double fd_cov_err[exp_no], fd_proj_err[exp_no], fd_time[exp_no]; double tailSquaredFrob; for(int i=0; i<exp_no; i++){ printf("i = %d\n", i); sfd_time[i] = 0; fd_time[i] = 0; init_sparseSketcher(&sfd, ell, dim); init_fd(&fd, ell, dim); // input matrix init_sparseMatrix(&A, dim, n_set[i]); for (int j=0; j < n_set[i]; j++){ skew_init_sparseVector(&arr[j], dim, nnz, (int) (1.5 * nnz), 0.9); append_to_sparseMatrix(&A, &arr[j]); // SFD start = clock(); append_to_sparseSketcher(&sfd, &arr[j]); sfd_time[i] += (double) (clock() - start); //FD start = clock(); append_to_fd(&fd, &arr[j]); fd_time[i] += (double) (clock() - start); } tailSquaredFrob = topRank(&A, k); //SFD start = clock(); get_sparseSketch(&sfd); sfd_time[i] += (double) (clock() - start); sfd_time[i] = sfd_time[i] / CLOCKS_PER_SEC; sfd_cov_err[i] = computeRelCovErr(&A, sfd.sketch, ell, dim); sfd_proj_err[i] = computeRelProjErr(&A, sfd.sketch, ell, dim, k, tailSquaredFrob); //FD start = clock(); get_fdSketch(&fd); fd_time[i] += (double) (clock() - start); fd_time[i] = fd_time[i] / CLOCKS_PER_SEC; fd_cov_err[i] = computeRelCovErr(&A, fd.sketch, ell, dim); fd_proj_err[i] = computeRelProjErr(&A, fd.sketch, ell, dim, k, tailSquaredFrob); } printf("SFD:\n"); print_one_dim_double("\'proj\':", sfd_proj_err, exp_no); print_one_dim_double("\'cov\':", sfd_cov_err, exp_no); print_one_dim_double("\'time\':", sfd_time, exp_no); print_one_dim_double("\'proj\':", fd_proj_err, exp_no); print_one_dim_double("\'cov\':", fd_cov_err, exp_no); print_one_dim_double("\'time\':", fd_time, exp_no); }
int main(int argc, char **argv) { struct timeval start, end; int port=0; char *addr=NULL; int msg_size = 0; int fd=-1, i, newfd; int sec, usec; int number_iterations=0; socklen_t len; struct sockaddr_in sin; struct sockaddr_in from; while((i= getopt(argc,argv,"h:p:v?")) != EOF) { switch (i) { case 'v': verbose = 1; break; case 'h': addr = optarg; break; case 'p': port = strtol(optarg, NULL, 0); break; case '?': default: printf ("Use %s -h host -p port -i iterations -s msg_size \n", argv[0]); return (-1); }; } if (port == 0) { printf ("Use %s -p port [-h host] \n", argv[0]); return (-1); } if(addr) { if (inet_pton(AF_INET, addr, (void *)&sin.sin_addr.s_addr) != 1) { printf("Address not parseable\n"); return(-1); } } else { sin.sin_addr.s_addr = INADDR_ANY; } sin.sin_port = ntohs(port); sin.sin_family = AF_INET; sin.sin_len = sizeof(struct sockaddr_in); fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); if( fd == -1) { printf("Can't open socket %d\n", errno); return(-1); } errno = 0; if(init_fd(&sin, fd)) { printf("Can't init fd errno:%d\n", errno); return (-1); } len = sizeof(from); handle_fd(fd); return (0); }
void tcpsrv_init() { fd_c2s = init_fd(PORT_C2S); fd_s2c = init_fd(PORT_S2C); }