Exception bad allocation как исправить

Plot size is: 32
Buffer size is: 22000MiB
Using 128 buckets
Using 12 threads of stripe size 65536

Starting phase 1/4: Forward Propagation into tmp files… Wed Apr 21 14:38:33 2021
Computing table 1
F1 complete, time: 155.283 seconds. CPU (166.19%) Wed Apr 21 14:41:08 2021
Computing table 2
Caught plotting error: bad allocation
[13156] Failed to execute script chia
Traceback (most recent call last):
File “chiacmdschia.py”, line 80, in
File “chiacmdschia.py”, line 76, in main
File “clickcore.py”, line 829, in call
File “clickcore.py”, line 782, in main
File “clickcore.py”, line 1259, in invoke
File “clickcore.py”, line 1259, in invoke
File “clickcore.py”, line 1066, in invoke
File “clickcore.py”, line 610, in invoke
File “clickdecorators.py”, line 21, in new_func
File “chiacmdsplots.py”, line 134, in create_cmd
File “chiaplottingcreate_plots.py”, line 176, in create_plots
RuntimeError: bad allocation

Chia – это новая экологичная криптовалюта, разработанная Брэмом Коэном, известным программистом. Использует новый алгоритм консенсуса – “Proof of Space and Time”. Майнинг осуществляется за счет использования пространства жестких дисков. Добыча Чиа, в целом, не сложная, но у майнеров часто возникают ошибки, например, chia coin runtime error unknown exception и другие. Давайте рассмотрим, как избежать любой ошибки Чиа (chia error) при майнинге.

Приведем некоторые советы, которым стоит следовать для успешного майнинга, чтобы не возникали различные chia ошибки:

1) Проверьте, отключена ли функция гибернации, переход в сон вашего ПК. Если нет, то отключите. Если ПК уйдет в сон, вы можете потерять весь прогресс.

2) Не забудьте и перепроверьте также, чтобы жесткие диски были отформатированы для поддержки больших файлов. Например: NTFS, APFS, exFAT, ext4. Диски с форматированием FAT (FAT12, FAT16 или FAT32) не подойдут для майнинга монеты chia.

3) Компьютер нельзя выключать, иначе при плоттинге вы потеряете весь прогресс.

4) Если при плоттинге выключился свет или произошел любой другой форс-мажор, то весь прогресс при плоттинге будет утерян. Необходимо будет вручную очистить папку для временных файлов и начать плотить заново.

5) Не называйте папку для временных файлов и папку для складирования плотов русскими буквами, используйте только латиницу.

6) Не указывайте в качестве временного каталога просто диск C, создайте отдельную папку (каталог) с названием на латинице.Runtime error unknown exception chia: как исправить

Запускайте программу от имени администратора (OS Windows).

7) Если chia зависает, кроме стандартного перезапуска программы, попробуйте удалить папку .chia (для Windows OS) на диске C, Пользователи, папка с именем пользователя, .chia.

Перезапустите программу.

Эта схема применима и в тех случаях, когда chia майнер вылетает; вылезает любая ошибка, например, у вас появляется уведомления: “chia error 1”, “chia ошибка 13” и т.д.

Runtime error unknown exception ошибка chia

Runtime error unknown exception чиа часто возглавляет темы для обсуждения на форумах по майнингу Чиа.

Следуя советам выше, вы сможете предупредить ошибку “chia unknown exception”, но есть еще два нюанса, которые необходимо соблюдать:

  • Не создавайте сразу много плотов, не рассчитав свободное место на жестком диске. Или вы столкнетесь с ошибкой chia bad allocation.
  • Запаситесь терпением. Когда вы параллельно поставите формироваться несколько плотов, на 30-32% может показаться, что процесс завис (chia майнинг зависает на 31), но на практике выяснено – необходимо ждать. Из ответов опытных майнеров, в этот момент после 30% запускается вторая фаза, которая длится достаточно долго.

Ошибка chia runtime error – распространенная, поэтому надо быть чрезвычайно внимательным, чтобы майнинг чиа был успешным.

Bad allocation chia как исправить

Если указано большее количество плотов, чем хватает места на диске (обычно SSD) для засева, то у вас может появиться: Runtime Error: bad allocation.

Исправить ее можно только перезапуском программы или чисткой временной папки, которая была создана под плот. При этом вы потеряете весь достигнутый прогресс при создании плотов.

Caught plotting error: Bitfield plotting not supported by CPU

Ошибка появляется, если выставлена галочка в программе “Отключить битовое поле”. Когда вы уберете эту галочку программа заработает, запись на диск снизится на 1/3, но памяти будет потребляться больше.

Полностью часть лога выглядит так:

Caught plotting error: Bitfield plotting not supported by CPU [6768] Failed to execute script chia

Traceback (most recent call last):

File “chiacmdschia.py”, line 80, in

File “chiacmdschia.py”, line 76, in main

File “clickcore.py”, line 829, in call

File “clickcore.py”, line 782, in main

File “clickcore.py”, line 1259, in invoke

File “clickcore.py”, line 1259, in invoke

File “clickcore.py”, line 1066, in invoke

File “clickcore.py”, line 610, in invoke

File “clickdecorators.py”, line 21, in new_func

File “chiacmdsplots.py”, line 134, in create_cmd

File “chiaplottingcreate_plots.py”, line 176, in create_plots

RuntimeError: Unknown exception

Ошибки, связанные с синхронизацией

Синхронизация обычно начинается автоматически, после того как сформированы плоты.

Успешное окончание синхронизации отмечается зеленым.

Если при установке программы, компьютер пишет, что нет синхронизации. Что делать? Удалите все соединения внизу страницы, они автоматически обновятся и начнётся синхронизация.

Опытные майнеры советуют всегда проверять уже сформированные плоты на целостность.

Как это сделать:

Откройте PowerShell, зайдите в каталог по следующему пути:

cd C:Users”Имя пользователя”AppDataLocalchia-blockchainapp-1.1.2resourcesapp.asar.unpackeddaemon

Пропишите в командной строке окна PowerShell команду, каталог замените названием вашего каталога и буквы диска, где лежат готовые плоты:

.chia plots check -g “D:Каталог”

Ошибок при проверке случится не должно, а если появились, то необходимо разбираться. Если плот “битый”, прибыли он не принесет.

Автор

Сообщение

Вставить имя в ответ
Перейти в профиль

Julia_Bogdanova

Репутация: 8

На сайте c 07.09.2012
Сообщений: 2

14.05.2016 00:23

Очень нужна помощь! Вылетает при рендере. пишет Bad allocation WTF . Почему?? и что делать?(

Вставить имя в ответ
Перейти в профиль

jeremi

Репутация: 6

На сайте c 18.11.2009
Сообщений: 42
Одесса

07.07.2016 13:05

у меня то же самое. Видимо не хватает ресурсов компа

Вставить имя в ответ
Перейти в профиль

Lanodris

Репутация: 128

На сайте c 05.11.2011
Сообщений: 37
Москва

EARLDK:
Слив базы моделей.

Пожизненный бан

07.07.2016 13:09

выделите всё , сохраните и импортируйте в новую сцену. Возможно поможет. 

А так надо бы скрин, понять на каком моменте такое творится..

Вставить имя в ответ
Перейти в профиль

Leeira

Репутация: 3318

На сайте c 12.12.2013
Сообщений: 870
Kiev

07.07.2016 13:09

Julia_Bogdanova

может не хватать памяти.Проверьте дисплейсмент на объектах.

Вставить имя в ответ
Перейти в профиль

ВладимирКузьмин

Репутация: 3922

На сайте c 20.09.2009
Сообщений: 800
Москва

07.07.2016 13:58

Скорее всего ругается на нехватку памяти.

Вставить имя в ответ
Перейти в профиль

albatr0s

Репутация: 12078

На сайте c 31.03.2011
Сообщений: 9595
Renderfarm

23.09.2018 16:38

загадка какая то прям с этим bad allocation, ставлю на рендер через DR, на головной машине все норм рендерится, у которой 96 гигов, на ноде со 128 гигами загрузка памяти доходит до 70% после этого выбивает ошибку, что на ноде bad allocation, как только доходит до просчета первого пасса

PS corona 1.7.4

UP проблема решилась увеличением виртуалки до объема оперативки

Вставить имя в ответ
Перейти в профиль

livanskijkedr1908

Репутация: 34

На сайте c 17.05.2018
Сообщений: 6
Kiev

25.02.2019 10:27

Цитата xpp_nd_ruphus:

загадка какая то прям с этим bad allocation, ставлю на рендер через DR, на головной машине все норм рендерится, у которой 96 гигов, на ноде со 128 гигами загрузка памяти доходит до 70% после этого выбивает ошибку, что на ноде bad allocation, как только доходит до просчета первого пасса

PS corona 1.7.4

UP проблема решилась увеличением виртуалки до объема оперативки

Спасибо тебе добрый человек!!!! виртуалька по умолчанию была 256мб, изменил до 32 гб стало все нормально)) еще раз респект…

Вставить имя в ответ
Перейти в профиль

VasyaGol

Репутация: 168

На сайте c 13.12.2015
Сообщений: 19
Одесса

Mozart:

Пожизненный бан

02.08.2021 14:02

Помог PRune Scene

Вставить имя в ответ
Перейти в профиль

Kira3dd

Репутация: 2

На сайте c 03.10.2019
Сообщений: 1

03.08.2021 16:16

Сбросила настройки короны, ошибка пропала.

Illko

1 / 1 / 1

Регистрация: 25.05.2015

Сообщений: 32

1

19.05.2016, 03:42. Показов 7156. Ответов 3

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Такая проблема: выбивает bad allocation в 59 строке мейна.
Запустите программу, введите 2 числа и выберите “Сложение”, введите “0 1”.
Пишут, что эта ошибка связана с оператором new, но в классе Hex вообще не используются динамические переменные.

“Main.cpp”

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include "Hex.h"
#include "Mass.h"
using std::cout;
using std::endl;
using std::cin;
using std::string;
using std::getline;
 
void Out(Mass<Hex> &mass) {
    for (int i = 0; i < mass.getIndex(); i++) {
        cout << i << ". " << mass.getElement(i).getNumber() << endl;
    }
}
int main() {
    setlocale(LC_ALL,"rus");
    string str;
    Hex hex;
    Mass<Hex> mass(1);
    do {
        cout << "Введите шестнадцатиричное число: ";
        getline(cin, str);
        try {
            hex.setNumber(str);
            mass.Add(hex);
        }
        catch (std::exception &e) { cout << "Неверный формат ввода!" << endl; }
        cout << "Прекратить ввод? (Y|N)n";
        int Choose;
        do {
            Choose = _getch();
        } while (Choose != 121 && Choose != 110);
        if (Choose == 121)
            break;
    } while (true);
 
    do {
        system("cls");
        Out(mass);
        int Choose = 49;
        cout << "Выберите операцию:n(1)Сложениеn(2)Разницаn(3)Умножениеn(4)Делениеn(5)Перевод в десятичную с.ч.n(6)Перевод двоичного числа в шестнадцатиричноеn";
        do {
            Choose = _getch();
        } while (Choose < 49 || Choose > 54);
        switch (Choose) {
        case 49: {
            cout << "Введите индексы чисел для сложения (через пробел)" << endl;
            int i, j;
            cin >> i >> j;
            try {
                if (i < 0 || i > mass.getIndex())
                    throw new std::exception("Вы выходите за пределы массива!");
                if (j < 0 || j > mass.getIndex())
                    throw new std::exception("Вы выходите за пределы массива!");
 
                cout << "1" << endl;
                cout << mass.getElement(i).Add(mass[j].getNumber()) << endl;
            }
            catch (std::exception &e) {
                cout << e.what() << endl;
            }
        }break;
        case 50: {
            cout << "Введите индексы чисел для разницы (через пробел)" << endl;
            int i, j;
            cin >> i >> j;
            try {
                if (i < 0 || i > mass.Length())
                    throw new std::exception("Вы выходите за пределы массива!");
                if (j < 0 || j > mass.Length())
                    throw new std::exception("Вы выходите за пределы массива!");
                cout << mass[i].Sub(mass[j].getNumber()) << endl;
            }
            catch (std::exception &e) {
                cout << e.what() << endl;
            }
        }break;
        case 51: {
            cout << "Введите индексы чисел для умножения (через пробел)" << endl;
            int i, j;
            cin >> i >> j;
            try {
                cout << mass[i].Mul(mass[j].getNumber()) << endl;
            }
            catch (std::exception &e) {
                cout << "Вы выходите за пределы массива!" << endl;
            }
        }break;
        case 52: {
            cout << "Введите индексы чисел для деления (через пробел)" << endl;
            int i, j;
            cin >> i >> j;
            try {
                cout << mass[i].Div(mass[j].getNumber()) << endl;
            }
            catch (std::exception &e) {
                cout << "Вы выходите за пределы массива!" << endl;
            }
        }break;
        case 53: {
            cout << "Введите индекс числа для перевода" << endl;
            int i;
            cin >> i;
            try {
                cout << mass[i].Hex_to_Dec(mass[i].getNumber()) << endl;
            }
            catch (std::exception &e) {
                cout << "Вы выходите за пределы массива!" << endl;
            }
        }break;
        case 54: {
            cout << "Введите двоичное число" << endl;
            string i;
            getline(cin, i);
            try {
                cout << mass[0].Double_to_Hex(i) << endl;
            }
            catch (std::exception &e) {
                cout << "Неверный формат ввода!" << endl;
            }
        }break;
        }
        cout << "Закончить программу?(Y|N)";
    } while (_getch() != 121);
    return 0;
}

“Mass.h”

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#pragma once
#include <exception>
template <class T>
class Mass {
private:
    T* mas;
    int index = 0;
    int n = 0;
 
    void MoreLength() {
        T* _mas = new T[n];
        int _n = n;
        n = n * 1.5 + 2;
        for (int i = 0; i < _n; i++)
            _mas[i] = mas[i];
        delete[] mas;
        mas = new T[n];
        for (int i = 0; i < _n; i++) {
            mas[i] = _mas[i];
        }
        delete[] _mas;
    }
public:
    Mass() {
        n = 10;
        mas = new T[10];
    }
    Mass(int _n) : n(_n) {
        mas = new T[_n];
    }
    Mass(const Mass &_mas) {
        delete[] mas;
        n = _mas.n;
        mas = new T[n];
        for (int i = 0; i < _n; i++) {
            mas[i] = _mas.mas[i];
        }
        index = 0;
    }
    ~Mass() { delete[] mas; }
 
    int Length() { return n; }
    T getElement(int _index) {
        if (_index < n && _index >= 0)
            return mas[_index];
        else throw new std::exception;
    }
    void setElement(T value, int _index) {
        while (true) {
            if (_index >= n)
                MoreLength();
            else break;
        }
        if (_index >= 0)
            mas[_index] = value;
        else throw new std::exception;
    }
    T* getMass() { return mas; }
    T &operator[](int i) { return getElement(i); }
    void Add(T obj) {
        setElement(obj, index);
        index++;
    }
    int getIndex() { return index; }
};

“Hex.h”

Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
#include <string>
#include <exception>
#include <cmath>
#include <iostream>
using namespace std;
#pragma once
class Hex {
private:
    std::string number;
    bool isHex() {
        for (int i = 0; i < number.length(); i++)
        {
            switch (number[i]) {
            case '0': case '1': case '2':case '3':case '4':case '5':case '6':
            case '7':case '8':case '9':case 'A':case 'B':case 'C':case 'D':
            case 'E':case 'F':break;
            default: return false;
            }
        }
        return true;
    }
    bool isDouble(std::string double_number) {
        for (int i = 0; i < double_number.length(); i++)
            if (double_number[i] != '0' && double_number[i] != '1')
                return false;
        return true;
    }
public:
    Hex() { number = "0"; }
    Hex(std::string _number): number(_number){}
    ~Hex() {}
    Hex(const Hex &_number) {
        number = _number.number;
    }
    int Hex_to_Dec(std::string _number)
    {
        int k;
        int dec_number = 0;
        for (int i = 0; i < _number.length(); i++) {
            switch (_number[i]) {
            case 'A': k = 10; break;
            case 'B': k = 11; break;
            case 'C': k = 12; break;
            case 'D': k = 13; break;
            case 'E': k = 14; break;
            case 'F': k = 15; break;
            case '1': k = 1; break;
            case '2': k = 2; break;
            case '3': k = 3; break;
            case '4': k = 4; break;
            case '5': k = 5; break;
            case '6': k = 6; break;
            case '7': k = 7; break;
            case '8': k = 8; break;
            case '9': k = 9; break;
            case '0': k = 0; break;
            }
            dec_number += k*pow((double)16, (double)_number.length() - i - 1);
        }
        return dec_number;
    }
    std::string Hex_to_Double() {
        std::string k;
        std::string double_number = "";
        for (int i = 0; i < number.length(); i++) {
            switch (number[i]) {
            case 'A': k = "1010"; break;
            case 'B': k = "1011"; break;
            case 'C': k = "1100"; break;
            case 'D': k = "1101"; break;
            case 'E': k = "1110"; break;
            case 'F': k = "1111"; break;
            case '1': k = "0001"; break;
            case '2': k = "0010"; break;
            case '3': k = "0011"; break;
            case '4': k = "0100"; break;
            case '5': k = "0101"; break;
            case '6': k = "0110"; break;
            case '7': k = "0111"; break;
            case '8': k = "1000"; break;
            case '9': k = "1001"; break;
            case '0': k = "0000"; break;
            }
            double_number += k;
        }
        return double_number;
    }
    int Double_to_Dec(std::string double_number) {
        if (isDouble(double_number))
            throw new std::exception;
 
        int dec_number = 0;
        for (int i = 0; i >= double_number.length(); i++) {
            if (double_number[i] == '1')
                dec_number += pow(2, double_number.length() - 1 - i);
        }
        return dec_number;
    }
    std::string Dec_to_Hex(int dec_number) {
        std::string hex_number = "";
        std::string ch = "";
        if (dec_number < 0)
            ch = "-";
        dec_number = abs(dec_number);
        while (true) {
            double d = dec_number / 16;
            if (d < 1) {
                break;
            }
            switch (dec_number % 16) {
            case 15: hex_number += "F"; break;
            case 14: hex_number += "E"; break;
            case 13: hex_number += "D"; break;
            case 12: hex_number += "C"; break;
            case 11: hex_number += "B"; break;
            case 10: hex_number += "A"; break;
            default: {
                char temp[1];
                _itoa_s(dec_number % 16,temp,10);
                hex_number += temp;
            }
            }
            dec_number = dec_number / 16;
        }
        char temp[1];
        _itoa_s(dec_number % 16, temp, 10);
        hex_number += temp;
        hex_number += ch;
        std::string true_hex = "";
        for (int i = 0; i < hex_number.length(); i++) {
            true_hex += hex_number[hex_number.length() - 1 - i];
        }
        return true_hex;
    }
    std::string Double_to_Hex(std::string double_number) {
        int dec_number = Double_to_Dec(double_number);
        return Dec_to_Hex(dec_number);
    }
 
    void setNumber(std::string _number) {
        if (isHex())
            number = _number;
        else throw new std::exception;
    }
    std::string getNumber() { return number; }
    std::string Add(std::string _number) {
        int first = Hex_to_Dec(number),
            second = Hex_to_Dec(_number);
        return Dec_to_Hex(first + second);
    }
    std::string Sub(std::string _number) {
        int first = Hex_to_Dec(number),
            second = Hex_to_Dec(_number);
        return Dec_to_Hex(first - second);
    }
    std::string Mul(std::string _number) {
        int first = Hex_to_Dec(number),
            second = Hex_to_Dec(_number);
        return Dec_to_Hex(first * second);
    }
    std::string Div(std::string _number) {
        int first = Hex_to_Dec(number),
            second = Hex_to_Dec(_number);
        return Dec_to_Hex(first / second);
    }
    bool operator>(Hex &n) {
        if (Hex_to_Dec(number) > Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    bool operator>=(Hex &n) {
        if (Hex_to_Dec(number) >= Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    bool operator<(Hex &n) {
        if (Hex_to_Dec(number) < Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    bool operator<=(Hex &n) {
        if (Hex_to_Dec(number) <= Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    bool operator==(Hex &n) {
        if (Hex_to_Dec(number) == Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    bool operator!=(Hex &n) {
        if (Hex_to_Dec(number) != Hex_to_Dec(n.getNumber()))
            return true;
        return false;
    }
    Hex& operator=(Hex &n) {
        number = n.getNumber();
        return *this;
    }
};



0



6044 / 2159 / 753

Регистрация: 10.12.2010

Сообщений: 6,005

Записей в блоге: 3

19.05.2016, 11:39

2

Цитата
Сообщение от Illko
Посмотреть сообщение

Пишут, что эта ошибка связана с оператором new, но в классе Hex вообще не используются динамические переменные.

Так у вас сколько всего помимо.



0



AlexVRud

693 / 303 / 99

Регистрация: 04.07.2014

Сообщений: 842

19.05.2016, 12:20

3

Цитата
Сообщение от Illko
Посмотреть сообщение

C++
1
2
3
4
int Length() { return n; }
   T getElement(int _index);
//...
   T &operator[](int i) { return getElement(i); }

Как это вообще компилировалось у тебя, ты пытаешься вернуть по ссылке локальную копию объекта.



0



1 / 1 / 1

Регистрация: 25.05.2015

Сообщений: 32

19.05.2016, 17:54

 [ТС]

4

Поменял, спасибо

Добавлено через 2 часа 6 минут
Проблема решена. Я как-то не правильно пользовался функцией _itoa_s(). Поэтому решил обойтись без нее



0



Have you started mining Chia recently and keep getting the pesky bad allocation errors? Well fret not, there is usually a very simple reason why they pop up and we will walk you through all of them.

First, the basics. Each chia plot requires atleast 3390 MiB of RAM and 2 threads each. Notice this is GiB and NOT GB. 3390 GiB translates to 3639 GB of RAM. It also needs 2 threads for every plot and the k=32 plot size (which is the most popular) requires 239 GiB of temporary space (or 257 GB) to plot.

Now lets assume you have a computer with 8 cores/16 threads, 32 GB of RAM and a 2 TB NVME. Theoratically, you should be able to mine 8 plots at a time right? So why are you getting all these bad allocation errors?

How to fix Chia bad allocation errors on Windows

  1. The most common mistake is that users enter their total RAM size in the chia client. That space isn’t asking fo the total amount of ram assigned for the parallel plots. It is PER plot. So if you are planning to write 7 plots together, the amount of RAM you enter will remain 3390 (because it is per plot) and not 23,730 (3390×7). The same goes for threads. Threads will remain 2.
  2. Secondly, the client uses GiB and your RAM is measured in GB. These are similar sounding but completely different metrics. If you enter 8 GiB, you will get a bad allocation error. 8 GB of RAM is actually 8.58 GiB of RAM. So make sure you are using the proper units in the client.
  3. Secondly, you cannot use all of the RAM at your disposal as you have to leave something for the OS to use or it will get sluggish. We recommend the following technique. Each plot requires 3390 MiB to plot so for every plot you are thinking of processing in parallel simply multiply it by that number (but not for all cores – more on this below). We like to round it off to a clean 3400 MiB. If you are planning to plot 7 plots in parallel (that is the maximum you should do on an 8 core), and you have 32 GB of RAM available, you can punch in 3400 in the Chia client.
  4. Thirdly, you cannot use all of the cores at your disposal. You have to leave atleast one core/two threads for MS Windows. So if you have an 8 core/16 thread CPU, you can only use 14 threads out of these to process 7 chia plots at most. Your thread value will remain 2 but don’t do more than 7 in parallel.
  5. But what if you have done all of the above and it is still throwing you an error? Well then it most likely has to do with the windows page file. Type performance in start menu and click on adjust windows performance and appearance. Now click on advanced and click on “Change” under virtual memory. Change this pagefile for C form windows managed to a number that is proportional to your plots. On our 32 GB example, we set the page file minimum to 10 GB and maximum to 30 GB for drive C (where the Chia client was located) and also put a 1 GB to 10 GB page file for our plotting drive.
  6. Still getting an error? Launch parallel plots in a staggered fashion! Sometimes queuing the maximum capability of your PC at once (7 in this case) can result in the OS stutteriing and handing out several bad allocations. To fix this, launch 70-80% of the capacity in parallel (6 plots) and then another one once all the other plots have started phase 2 (click on view log) and you are sure they arent giving the bad allocation error.

Hopefully these tips will have fixed the issue for you and you can put your NVMEs to work farming that sweet Chia reward!

Добавить комментарий