Форум

Пожалуйста или Регистрация для создания записей и тем.

BOINC для Android

НазадСтраница 11 из 16Далее

Попробовал поискать такой режим расчётов на Samsung A22s 5G, чтобы не приходилось думать о зарядке телефона, его перегреве и т.п., так как в данный момент он используется и просто как телефон.

CPU-Z говорит что CPU у него big.LITTLE: 2 ⨯ ARM Cortex-A76 @ 2.20 ГГц + 6 ⨯ ARM Cortex-A55 @ 2.00 ГГц.

После недолгих экспериментов пришёл к варианту задействования одного ядра. В таком варианте расчёт попадает на одно из быстрых ядер, сам смартфон не греется даже в чехле. Иногда, при зарядке, температура батареи доходит до 40°C, тогда вычисления приостанавливаются на некоторое время. Расчёты могут производиться и при работе от сети, и при работе от аккумулятора, и с WiFi и с мобильным интернетом. Особого уменьшения времени между зарядкой телефона - не заметил. Также появилось подозрение (но, не проверял), что от увеличения числа потоков особого выигрыша бы не было - уж больно быстро сейчас стали считаться задания WCG.  Но надо проверять.

Поскольку RAC в Android-версии что-то не могу найти, а со экспортом статистики у WCG, видимо, тоже не очень, в последнее время, то какой именно он, сказать пока не могу, надо замерять специально.

В целом же, схема пока работает, посмотрим, что будет дальше.

Не скажу на самсунги, но у многих телефонов бюджетной серии на, допустим, 8 ядер, всего один FPU (для расчетов чисел с плавающей запятой). Так как многие BOINC проекты так или иначе считают числа с плавабщей запятой, но может случиться так, что будут работать параллельно 8 задач на 8 ядрах, но при этом они все будут конкурировать за один FPU, то есть работать в примерно 8 раз медленнее, чем одна отдельно запущенная задача. К сожалению, информацию о FPU не так легко найти, зачастую надо курить мануалы конкретного процессора, так как для публики данные технические подброности обычно в обзоре телефонов не указывают, ибо мало вообще кто понимает что это за числа такие, и почему у них плавает запятая, а главное где :)
Кроме этого, надо не забывать о троттлинге, когда OS снижает частоту ядер во избежание перегрева.

Так что надо тестировать и смотреть.

"В таком варианте расчёт попадает на одно из быстрых ядер"

 

А разве Android не оставляет быстрые ядра только для себя?

 

hoarfrost, проверьте почту.

Цитата: DimOK от 16.12.2022, 08:41

"В таком варианте расчёт попадает на одно из быстрых ядер"

А разве Android не оставляет быстрые ядра только для себя?

Если под "Оставляет" имеется ввиду "Не разрешает использовать никому кроме своих процессов" - то точно нет, т.к. это не имело бы никакого смысла. Ядра бы простаивали почти всегда.

А вот приоритет у root-овых процессов всегда был выше, чем у всех остальных. Если им будет надо - то вытеснят кого угодно.

DimOK отреагировал на эту запись.
DimOK

Продолжил эксперимент из сообщения № 101, пытаясь проверить свои предположения о том, что: 1) время без зарядки при нагрузке только на 1 ядро - почти не отличается от времени работы без нагрузки вообще; 2) больше чем 1 ядра задействовать нет смысла.

Статистику набирал, подключив смартфон к Asteroids@Home с 18 декабря 2022 г. До 15 января 2023 расчёты велись на 1 ядре, а с 15-го - на 2 ядрах. Набралось 98 результатов в первом режиме и 55 во втором, по которым и собрал статистику по производительности при задействвоании 1 и 2 ядер.

Время, за которое смартфон разряжается при нагрузке и без померял несколько раз, из-за того что значения получались на удивление одинаковые, решил что этого хватит. Итак:

Скорость разрядки.
При отсутствии нагрузки и какой бы то ни было работы со смартфоном, он за 8 часов он разряжается со 100% до 96%. То есть 4% за 8 часов;
При нагрузке на 1 ядро и отсутствии какой-либо другой нагрузки, за 8 часов он разряжается со 100% до 60%. То есть 40% за 8 часов.

Разница в 10 раз, гипотеза провально не подтвердилась.  :D

Валовая вычислительная мощность.
Для 1 ядра: Cреднее время выполнения задания: 12717 секунд, среднеквадратичное отклонение 3383 секунды. Среднее по Credit / час: 19.89, среднеквадратичное отклонение: 2.42.
Для 2 ядер: Среднее время выполнения задания: 13848 секунд, среднеквадратичное отклонение 1161 секунды. Среднее по Credit / час: 19.06, среднеквадратичное отклонение: 1.12.

То есть и вторая гипотеза разбита в пух и прах. :D

Лично меня больше всего поразило то, что при задействовании 2 ядер, и время выполнения и Credit/час получились гораздо более "кучными" по своим значениям. Более того, даже когда из первого набора я удалил несколько результатов, чъё время выполнения было раз в 5-10 меньше, чем остальных заданий (то есть, там явно сами задания были меньше), результат поменялся не сильно. Была σ в 3383, стала 2454 - всё равно в 2 раза больше. :)

В тоже время, при нагрузке на 2 ядра смартфон уже заметно греется (не горячий, но тёплый) и для того, чтобы получить выборку в 55 результатов за эти две недели, мне пришлось почти всё время держать его на зарядке. Производительность 1 "быстрого ядра смартфона" получается равной ~ 1/3 от одного потока Intel Core i3-6100 (3.70 ГГц, 2 ядра, 4 потока) и 1/5 от скорости одного поткоа Intel Core i7-9700 CPU (3.00GHz, 8 ядер, 8 потоков).

Что будет, если начать грузить не только два производительных (Cotrex-A75, 2.20 ГГц), но и остальные 6 лёгких ядер (Cortex-A55, 2.00 ГГц) - проверять не стал, мне кажется, что либо смарфтон взорвётся, либо просто  зарядки не будет хватать.

Какие выводы можно сделать?

Видимо, производительность современных смартфонов среднего и, наверное, высокого класса - в некоторой степени условная. Потому что CPU-то, конечно, выдадут. Но самого смартфона надолго не хватит. Время работы в режиме нагрузки на все ядра будет определяться, как я подозреваю, временем нагрева корпуса, играющего роль радиатора.

В тоже время, нагрев идёт не только от CPU, но и от батареи. И, если у вас есть ненужные смартфоны "под разбор", то можно попробовать демонтировать из них аккумулятор, соединить цепь питания с USB (возможно, добавив сопротивление чтобы подавать на CPU не 5 Вольт) и, возможно, они будут неплохо считать, если организовать охлаждение - см. предыдущие сообщения в ветке от коллег по увлечению. :)

Вот мой mediatek helio g99 в Realme 10 выдает 1698.29 гигафлопс

 

Попытался запустить под андроид кастомное приложение с помощью app_info.xml

Похоже, что боинк его просто игнорирует. Отключено для андроида?

Цитата: Sid от 05.02.2023, 21:21

Попытался запустить под андроид кастомное приложение с помощью app_info.xml

Похоже, что боинк его просто игнорирует. Отключено для андроида?

Не должен.
Что пишется в логах?

Несколько экзотическим способом, но запустил SiDock@home на смартфоне. Компьютер № 45736. Поставил на него UserLAnd, внутри него - создал файловую систему типа Debian (сначала пробовал на Ubuntu, но с ней, что-то не заработало) и, уже внутри, как я понимаю виртуальной машины, поставил BOINC из пакетов, добавил в сс_config:

<cc_config>
    <options>
        <alt_platform>arm-unknown-linux-gnueabihf</alt_platform>
    </options>
</cc_config>

и заменил файл с сертификатами на тот, что лежит в репозитории BOINC и расчёты пошли. Одно задание уже посчитано. :D

Основная проблема, на данный момент - периодическое выключение сессии UserLAnd-а. Уже, вроде бы, отключил все возможные "оптимизации", связанные с батареей, но VM-ка всё равно периодически вылетает. А вот время расчёта получилось неплохим - около 17.5 часов для задания cmdock-s, размером в 1/5 от обычных.

AenBleidd отреагировал на эту запись.
AenBleidd
Цитата: AenBleidd от 06.02.2023, 02:45
Цитата: Sid от 05.02.2023, 21:21

Попытался запустить под андроид кастомное приложение с помощью app_info.xml

Похоже, что боинк его просто игнорирует. Отключено для андроида?

Не должен.
Что пишется в логах?

Ничего,  что можно отнести к app_info :)

 

1 2/6/2023 4:37:03 PM Starting BOINC client version 7.18.1 for arm-android-linux-gnu
2 2/6/2023 4:37:03 PM This a development version of BOINC and may not function properly
3 2/6/2023 4:37:03 PM log flags: file_xfer, sched_ops, task
4 2/6/2023 4:37:03 PM Libraries: libcurl/7.74.0-DEV OpenSSL/1.1.1k zlib/1.2.11
5 2/6/2023 4:37:03 PM Running as a daemon
6 2/6/2023 4:37:03 PM Data directory: /data/data/edu.berkeley.boinc/client
7 2/6/2023 4:37:04 PM CUDA: NVIDIA GPU 0: NVIDIA Tegra K1 (driver version unknown, CUDA version 8.0, compute capability 3.2, 1968MB, 126MB available, 327168 GFLOPS peak)
8 2/6/2023 4:37:04 PM Host name: android_1be3e456
9 2/6/2023 4:37:04 PM Processor: 4 ARM ARMv7 Processor rev 3 (v7l) [Impl 0x41 Arch 7 Variant 0x3 Part 0xc0f Rev 3]
10 2/6/2023 4:37:04 PM Using 2 CPUs
11 2/6/2023 4:37:04 PM Processor features: swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32
12 2/6/2023 4:37:04 PM OS: Android: 3.10.96+
13 2/6/2023 4:37:04 PM Memory: 1.92 GB physical, 512.00 MB virtual
14 2/6/2023 4:37:04 PM Disk: 11.95 GB total, 6.43 GB free
15 2/6/2023 4:37:04 PM Local time is UTC +3 hours
16 2/6/2023 4:37:04 PM Config: GUI RPC allowed from any host
17 2/6/2023 4:37:04 PM Config: report completed tasks immediately
18 2/6/2023 4:37:04 PM Reading preferences override file
19 2/6/2023 4:37:04 PM Preferences:
20 2/6/2023 4:37:04 PM max memory usage when active: 1967.55 MB
21 2/6/2023 4:37:04 PM max memory usage when idle: 983.78 MB
22 2/6/2023 4:37:04 PM max disk usage: 6.35 GB
23 2/6/2023 4:37:04 PM max CPUs used: 2
24 2/6/2023 4:37:04 PM don't compute while active
25 2/6/2023 4:37:04 PM don't use GPU while active
26 2/6/2023 4:37:04 PM suspend work if non-BOINC CPU load exceeds 50%
27 2/6/2023 4:37:04 PM (to change preferences, visit a project web site or select Preferences in the Manager)
28 2/6/2023 4:37:04 PM Setting up project and slot directories
29 2/6/2023 4:37:04 PM Checking active tasks
30 Einstein@Home 2/6/2023 4:37:04 PM URL https://einstein.phys.uwm.edu/; Computer ID 13088498; resource share 100
31 2/6/2023 4:37:04 PM Setting up GUI RPC socket
32 2/6/2023 4:37:04 PM Checking presence of 25 project files
33 2/6/2023 4:37:04 PM Suspending computation - on batteries
34 2/6/2023 4:37:04 PM Suspending network activity - not connected to WiFi network
35 2/6/2023 4:37:06 PM Resuming network activity

НазадСтраница 11 из 16Далее
BOINC.RU