рдкрд░рд┐рдЪрдп
рдЕрдм рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рджреБрдирд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред рд╕рдм рдХреБрдЫ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдореЗрдВ рдЕрдм рдХрдИ рдХреЛрд░ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ ... рдареАрдХ рд╣реИ, рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд╡рд┐рд╖рдп рднреА рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ, рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧреГрд╣рд┐рдгрд┐рдпреЛрдВ рдиреЗ рднреА рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЖрд▓рд╕реА рдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИред рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЧрдгрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реВрдкрд░реЗрдЦрд╛рдПрдВ рд╣реИрдВ, рдореЗрд░реЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЖрд░ рд╣реИ (рдореБрдЭреЗ рдСрдХреНрдЯреЗрд╡ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдорд╛рдл рдХрд░реЗрдВ)ред рдФрд░ рдпрд╣ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред
рдЕрд╕реНрд╡реАрдХрд░рдг :
рдореИрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЦреНрдд рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдореЗрд░рд╛ рдХрд╛рдо рдкрд╛рдардХреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЕрд╡рдЧрдд рдХрд░рд╛рдирд╛ рд╣реИред
рдЖрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рджреЛ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд▓рдЧрднрдЧ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдмрдбрд╝реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдХрд░ рджреЗрддреА рд╣реИрдВ:
- рд╕рднреА рдХреЛрдб рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
- рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрд╣ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ред
рдмрд┐рдирд╛ рдЫреЛрд░реЛрдВ рдмрдирд╛рдо рдлреЛрд░рдЪ рдХреЗ рдХрд╛рдо рдХрд░реЗрдВ
рдЖрд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреНрд░рдерд╛рдЧрдд рдирд╣реАрдВ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реВрдЪреА рд╕рдВрдЪрд╛рд▓рди (рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рд╕рдордХрдХреНрд╖реЛрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдЬрд╛рджреВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдРрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрд╛рд╖рд╛ рдХреЗ рджрд░реНрд╢рди рдореЗрдВ рдмрд╣реБрдд рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рджреЗрдЦреЛ:
a <- c(); for (i in 1:4) { a<- c(a, i^2) } # a <- 1:4 * 1:4 # , ?
рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдиреЙрдирд╡реЗрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
a <- sapply(1:4, function(x) {x^2})
рд▓рд╛рдЧреВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рд╡рд╛рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрд╣рд╛рд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдВрдЦ рдХреЛ рдмрд╣реБрдд рдкреНрд░рд╕рдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдХреБрдЫ рдХреМрд╢рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдмреНрдпрд╛рдЬ рдХреЗ рд╕рд╛рде рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИред
рдФрд░ рд╕рдорд╛рдирддрд╛ рдХрд╣рд╛рдВ рд╣реИ, рдЖрдк рдкреВрдЫреЗрдВ? рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЭреВрда рд╣реИред
рд╕рд╛рдзрд╛рд░рдг рд▓реЛрдЧ рдЖрдП рдФрд░ рд╕реЛрдЪрд╛: тАЬрдпреЗ рд╕рдм рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рд╕реВрдЪреА, рдЖрджрд┐ред - рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд░рд╛рд╣рдд рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдЙрдкрдХрд░рдг рджреЛред тАЭ рдФрд░ рдРрд╕рд╛ рдПрдХ рдпрдВрддреНрд░ рдкреНрд░рдХрдЯ рд╣реБрдЖ рд╣реИред рдЖрдк рдЗрд╕реЗ рдлреЙрд░реНрдЪреНрдпреВрдирд░ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рджрд░рдЕрд╕рд▓, рд╣рдо рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЪрдХреНрд░ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдореВрд▓ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рди рдХреЗрд╡рд▓ рдХреБрдЫ рддрд░реАрдХреЛрдВ рд╕реЗ рдЧрдардЬреЛрдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░ рдпрд╛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреБрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦрд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрдо рдФрд░ рдЙрдкрдпреЛрдЧреА рд╕реА, рд╕реАрдмреАрдПрди, рдЖрд░рдмреАрдЖрдИрдЗрдВрдб рд╣реИрдВред
a <- foreach(i=1:4, .combine='c') %do% {i^2}
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдЫреЛрдЯреЗ рд╕реНрд╡рддрдВрддреНрд░ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рддреЛрдбрд╝реЛред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдХрд┐ R рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░реАрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлреЙрд░реНрдЪреНрдпреВрдирд░ рдФрд░ doSNOW рдореЙрдбреНрдпреВрд▓ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЗрдП рд╣рдорд╛рд░реА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ "рдХреНрд▓рд╕реНрдЯрд░" рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред
# library(foreach) library(doSNOW) cl <- makeCluster(4) registerDoSNOW(cl) a <- mean(foreach(i=1:10^6, .combine='c') %dopar% {mean(rnorm(i))}) stopCluster(cl)
рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдк% do% рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ -% dopar%ред
рдорд╣рддреНрд╡рдкреВрд░реНрдг : рд╕рдорд╛рдирд╛рдВрддрд░ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рд╕реАрдзреЗ% dopar% рдХреЗ рдЕрдВрджрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рд╡реЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрд░реЛрдд ('trololo.R) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
DoSNOW рдХреНрд▓рд╕реНрдЯрд░ рдЕрд▓рдЧ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ R рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬреЛ% dopar% рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдорд╢реАрди рдкрд░ рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдкрд░ рднреА рд╕реНрдерд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
cl1 <- makeCluster(c("localhost","remotehost"), type = "SOCK")
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: PVM (http://www.csm.ornl.gov/pvm/), MPI (http://cran.r-project.org/web/packages/Rmpi/index.html), NWS (http://nws-r.sourceforge.net/) рдФрд░ SOCK рдкрд╣рд▓реЗ рддреАрди рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реНрдиреЛ.рдЯрд╛рдЗрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рд▓рдкреЗрдЯрдХрд░:
cl <- makeCluster(4) registerDoSNOW(cl) tm <- snow.time(a <- mean(foreach(i=1:10^6, .combine='c')
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд╕реНрд╡реАрд░реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИрдВ:

рдФрд░ рдПрдХ рдмрдХрд░реА рдмрдЯрди рд╕рдордЭреМрддреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛?
рд╢рд╛рдпрдж рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдЬреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдХрд┐ рдХрд╣рд╛рдВ рдЦреБрджрд╛рдИ рдХрд░рдиреА рд╣реИред
рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рд╣рд╛рдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░рдг рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рд╣рдо рд╕рдордп рдХреА рдЦрдкрдд рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдм рдЖрдк рднрд╛рд░реА рдЧрдгрдирд╛ рдХреЗ рдЕрдВрдд рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛
- рдЧрдгрдирд╛ рдХреЛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдордпрд╛рд╡рдзрд┐ рдкрд░ рдЪрд▓рд╛рдПрдВ (рд╡рд┐рдирд┐рдордп рд░рдгрдиреАрддрд┐ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпрд╛рдВрдХрди)
- рдЗрд╕реА рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ рдЧрдгрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ (RxQ рдХреНрд░реЙрд╕-рд╡реЗрд▓рд┐рдбреЗрд╢рди)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рд╕реМрднрд╛рдЧреНрдп рд╣реИ